Portál AbcLinuxu, 14. listopadu 2025 07:33
Dobrý den, potřebuji pro aplikaci, která pracuje s databází vymazat záznam nezávisle na jeho ID klidně uprostřed tabulky, přečíslování ID mám vyřešeno v cyklu FOR pomocí SQL - UPDATE a podmínek, ale při pokusu o změnu ID mi to vyhodí chybovou hlášku přitom syntaxe je podle mě bezchybná.
if ($delete_index == 1) {
$autoinc = mysql_query("ALTER TABLE `Articles` AUTO_INCREMENT ='" . $delete_ID . "'");
if (!$autoinc) {
die('Operace zrušena: ' . mysql_error());
mysq_close($link);}
else {
echo "Increment snížen";
}
}
if ($delete_index == 0) {
$after_delete_ID = $delete_ID + 1;
for ($x = $delete_ID; $x <= $maxrows_delete_artic; $x++) {
mysql_query("UPDATE `Articles` SET ID='" . $x . "' WHERE ID='" . $after_delete_ID . "'");
}
$autoinc = mysql_query("ALTER TABLE `Articles` AUTO_INCREMENT ='" . $maxrows_delete_artic . "'");
if (!$autoinc) {
die('Operace zrušena: ' . mysql_error());
mysq_close($link);
} else {
echo "Incrementy sníženy";
}
}
A KULI TOMUHLE UPRAVUJU TABULKU PRI MAZANI ZAZNAMU
for ($x = 1; $x <= $maxrows; $x++) {
$query = mysql_query("SELECT * FROM Articles WHERE ID='" . $x . "'");
$row = mysql_fetch_array($query, MYSQL_ASSOC);
(HTML struktura pro data)
}
$result_delete_artic = mysql_query("SELECT * FROM `Articles`");
$maxrows_delete_artic = mysql_num_rows($result_delete_artic);
if ($delete_ID == $maxrows_delete_artic) {
$delete_index = 1;
} else {
$delete_index = 0;
}
if ($delete_index == 0) {
$after_delete_ID = $delete_ID + 1;
for ($x = $delete_ID; $x <= $maxrows_delete_artic; $x++) {
mysql_query("UPDATE `Articles` SET ID='" . $x . "' WHERE ID='" . $after_delete_ID . "'");
}
} else {
$query_delete = mysql_query("DELETE FROM `Articles` WHERE ID='" . $delete_ID . "'");
if (!$query_delete) {
die('Záznam se nesmazal: ' . mysql_error());
mysq_close($link);
} else {
echo "Úspěšně smazáno";
}
}
A funguje skvěle o ID se teď starám já přímo při INSERTU záznamu prostě je tam jen hodnota navíc co se musí zapsat také řízená cyklem :)
mysq_close($link);
) příkazu $autoinc = mysql_query("ALTER TABLE… PHP vyhodí chybu.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.