ESAD
2005-08-20, 10:42:44
//ändern der newseigenen ids welche nach der gelöschten news kommen
$abfrageid = "SELECT id FROM newsinhalt where datum='$abgefragtesdatum'";
$erg = mysql_query($abfrageid);
while (list($abfrageid) = mysql_fetch_row($erg))
{
$abfrageidgesamt = "SELECT id FROM newsinhalt where text='text1'";
$erg = mysql_query($abfrageidgesamt);
while (list($abfrageidgesamt) = mysql_fetch_row($erg))
{
for($count = $abfrageid; $count <= $abfrageidgesamt; $count++)
{
$countklein= $count - 1;
$andernid = "UPDATE newsinhalt SET id='$countklein' WHERE id='$count'";
$id = mysql_query($andernid)or die (mysql_error().'<br/>Befehl:'.$andernid);
}
}
}
sinn des scripts:
bei diesem script handelt es sich um einen teil eines newssystems
dieses system basiert auf einer datenbank wo es für jeden beitrag eine zeile gibt worin das erstalleungsdatum, der text, und die id(wird beim eintragen einer news immer um 1 erhöht und dient an anderer stelle gebraucht um die beträge geordnet auszugeben)
was sollte das script tun :
jetzt habe ich aber die möglichkeit eingebaut einen beitrag zu löschen. (das script zum löschen etc funktioniert einwandfrei)
nun soll das cript die ip jedes beitrages welcher nach dem beitrag steht der gelöscht wird um 1 verringern(ich weis das auch der eigentliche beitrag erniedrigt wird aber der wird gleich darauf gelöscht)
erklärung variablen,etc:
$abgefragtesdatum // die id des beitrages und überhaupt der beitrag wird darüber identifiziert indem man das erstellungsdatum auswählt
SELECT id FROM newsinhalt where text='text1' // es gibt am anfang der tabelle eine zeile in der die höchste id eingetragen ist und auch die anzahl diese enthält in der spalte text dern wert text1 und wird darüber identifiziert(diese spalte ist ein überbleibsl aus den ersten anfängen die zweckentfrendet wird was aber ganz gut geht)
for($count = $abfrageid; $count <= $abfrageidgesamt; $count++)
//soll als schleife durchlaufen um die erniedrigung der id zu ermöglichen
UPDATE newsinhalt SET id='$countklein' WHERE id='$count'
//soll die neue id eintragen also also wo vorher die news die id 6 hatta soll sie nacher die id 5 haben
ps mir ist klar, dass das ganze auch ohne verringerung der id gehen wüde aber es soll für mich eine übung sein deshalb der aufwand (diese script wird wenn ich zeit finde auch einmal richtig in einer seite eingesetzt)
wenn ihr den fehler finden würde wäre ich euch sehr dankbar
mfg
esad
$abfrageid = "SELECT id FROM newsinhalt where datum='$abgefragtesdatum'";
$erg = mysql_query($abfrageid);
while (list($abfrageid) = mysql_fetch_row($erg))
{
$abfrageidgesamt = "SELECT id FROM newsinhalt where text='text1'";
$erg = mysql_query($abfrageidgesamt);
while (list($abfrageidgesamt) = mysql_fetch_row($erg))
{
for($count = $abfrageid; $count <= $abfrageidgesamt; $count++)
{
$countklein= $count - 1;
$andernid = "UPDATE newsinhalt SET id='$countklein' WHERE id='$count'";
$id = mysql_query($andernid)or die (mysql_error().'<br/>Befehl:'.$andernid);
}
}
}
sinn des scripts:
bei diesem script handelt es sich um einen teil eines newssystems
dieses system basiert auf einer datenbank wo es für jeden beitrag eine zeile gibt worin das erstalleungsdatum, der text, und die id(wird beim eintragen einer news immer um 1 erhöht und dient an anderer stelle gebraucht um die beträge geordnet auszugeben)
was sollte das script tun :
jetzt habe ich aber die möglichkeit eingebaut einen beitrag zu löschen. (das script zum löschen etc funktioniert einwandfrei)
nun soll das cript die ip jedes beitrages welcher nach dem beitrag steht der gelöscht wird um 1 verringern(ich weis das auch der eigentliche beitrag erniedrigt wird aber der wird gleich darauf gelöscht)
erklärung variablen,etc:
$abgefragtesdatum // die id des beitrages und überhaupt der beitrag wird darüber identifiziert indem man das erstellungsdatum auswählt
SELECT id FROM newsinhalt where text='text1' // es gibt am anfang der tabelle eine zeile in der die höchste id eingetragen ist und auch die anzahl diese enthält in der spalte text dern wert text1 und wird darüber identifiziert(diese spalte ist ein überbleibsl aus den ersten anfängen die zweckentfrendet wird was aber ganz gut geht)
for($count = $abfrageid; $count <= $abfrageidgesamt; $count++)
//soll als schleife durchlaufen um die erniedrigung der id zu ermöglichen
UPDATE newsinhalt SET id='$countklein' WHERE id='$count'
//soll die neue id eintragen also also wo vorher die news die id 6 hatta soll sie nacher die id 5 haben
ps mir ist klar, dass das ganze auch ohne verringerung der id gehen wüde aber es soll für mich eine übung sein deshalb der aufwand (diese script wird wenn ich zeit finde auch einmal richtig in einer seite eingesetzt)
wenn ihr den fehler finden würde wäre ich euch sehr dankbar
mfg
esad