Autor Zpráva
libor XYZ
Profil
mám problém s prohozením pořadí řádků v databázi (prostřenictvím údaje v sloupci pořadí), prováděné z PHP:

je to v principu nějak takto:

if ($nahoru)
   {$predchozi=$nahoru-1; $pomocna="10000";
    $sql = "UPDATE web SET poradi=$pomocna        WHERE poradi='$nahoru'";       $dbdata = mysql_query( $sql );
    $sql = "UPDATE web SET poradi='$nahoru'      WHERE poradi='$predchozi'";   $dbdata = mysql_query( $sql );
    $sql = "UPDATE web SET poradi='$nahoru'-1    WHERE poradi='$pomocna'";    $dbdata = mysql_query( $sql );
   };

vypadá to, jako by PHP neumělo provést ty tři SQL příkazy po sobě a nějak mi to stále "sukuje"…

děkuji za případnou radu

Libor

Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Tori
Profil
píše něco mysql_error() ?
libor XYZ
Profil
Tori:
no nejsem si jistý jak to zjistit...
takto po provedení příkazů mySQL?

echo (mysql_error());

tak v tom případě nic...
ale možná nám na serveru vypnuté informace o chybách...

asi ten kód napíšu jinak a obejdu uživatelsky přítulné řešení...
AM_
Profil
mohlo by fungovat toto:
UPDATE web SET poradi=IF(poradi==$nahoru, $predchozi, $nahoru) WHERE poradi IN ($predchozi, $nahoru)
libor XYZ
Profil
díky zkoušel jsem to, ale nezafungovalo to...
a je to mě složitý... nezvládnu to sám opravit...

původně jsem chtěl posouvat řádky pomocí šipeček,
ale pak jsem to obešel formulářem, kde zadám původní a nový záznam.
to mi funguje, a tak to teď nechám...

ještě jednou díky ...

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: