phpbar.de logo

Mailinglisten-Archive

[php] =?iso-8859-1?Q?=22Buch-Script=22_rennt_sich_selber_=FCber_den_H aufen_?= =?iso-8859-1?Q?=3F=3F?=

[php] "Buch-Script" rennt sich selber über den H aufen ??

Hypergrip php_(at)_phpcenter.de
Wed, 13 Feb 2002 03:56:56 +0100


Hi Leute.

Es is früh am Morgen und vielleicht bin ich auch einfach zu blind, um den
Fehler zu finden...
Ich habe mir ein kleines Script geschrieben, das als eine Art Buch dient.
In einer Tabelle (id, kapitel, text) sind Daten gespeichert.
Das Script zum Auslesen funktioniert einwandfrei, nur das Script zum
einfügen eines neuen "Kapitels" will nicht so recht laufen.

Der Grundgedanke ist, dass das Script die Anzhal der Kapitel (Rows) in der
Datenbank ermittelt und dem user für das neue Kapitel die Kapitel-Nummer
$Anzahl+1 vorschlägt.
Will der User das Kapitel aber z.B. als neues Kapitel 1 einfügen, so müssen
alle Kapitel "hinter" dem gewünschten Platz einen Platz weiter rücken.
Ich habe versucht, dies mit folgender Schleifen-Kontruktion zu lösen, an
deren Anschluss dann das Einfügen des neuen Kapitels an der gewünschten
Stelle $Kapitelneu durchgeführt wird.

--schnipp--

//Verschieben
if  ($kapitelneu < $anzahl+1) {
$i = $anzahl;           <----- Zeile 101
while ($i >= $kapitelneu){
$query3 = mysql_query("SELECT id FROM $tabelle WHERE kapitel=$i");
$result = mysql_fetch_array($query3);
$id = ($result[0]);
$j = $i +1;
$verschieben = mysql_query("UPDATE $tabelle SET kapitel='$j' WHERE
id='$id'");
$i--;
}
}

//"Technisches" Einfuegen
$insert = mysql_query("INSERT INTO $tabelle VALUES('', '$kapitelneu',
'$text')");
if(!$insert) {
echo "<b>Interner Fehler beim Einf&uuml;gen der Datens&auml;tze!</b>\n";
exit;
} //Ende if bei Fehler

header('Location: story.php?kapitelzahl=$kapitelneu');
break;            <----- Zeile 120
} //Ende Switch

--schnapp--

Rein technisch scheint das ganze auch hervorragend zu funktionieren.. die
Kapitel werden entsprechend verschoben und das neue Kapitel eingefügt.
Das Problem ist aber, dass ich folgende Fehlermeldung auf dem Bildschirm
hatte:

Warning: Cannot add header information - headers already sent by (output
started at c:\work\homepage\story\eintragen.php:101) in
c:\work\homepage\story\eintragen.php on line 120

Ich hab irgendwie den Eindruck, dass sich das Script da selber über den
Haufen gerannt hat oder so...
Muss ich irgendeine Warte-Funktion einbauen, um sowas zu verhindern ?
Danke im Vorraus

Oliver

-----------------------------
www.hypergrip.de
Hypergrip_(at)_gmx.de
Icq: 24317917


php::bar PHP Wiki   -   Listenarchive