phpbar.de logo

Mailinglisten-Archive

[php] =?iso-8859-1?Q?Nachtrag:_=5Bphp=5D_=22Buch-Script=22_rennt_sich _sel?= =?iso-8859-1?Q?ber_=FCber_den_Haufen_=3F=3F?=

[php] Nachtrag: [php] "Buch-Script" rennt sich sel ber über den Haufen ??

Hypergrip php_(at)_phpcenter.de
Wed, 13 Feb 2002 04:46:39 +0100


Nochmal Hallo...

Ich hab jetzt noch ein paar Tests gemacht...
Ich hab das Script mit unzähligen Einfüge-Operationen beschäftigt und musste
dabei dann auch feststellen, dass die "Verschiebe-Operation" in einem Fall
nicht ordnungsgemäß ausgeführt wurde...
So hatte ich plötzlich eine Tabelle, die zweimal einen Datensatz mit Kapitel
= 5 enthielt, aber keinen mit Kapitel = 9.
Daher verstärkst sich halt meien Vermutung, dass das Script in der Eile eine
operation verschlampen kann.
Leider hab ich keine großartige Ahnung von Hardware,
Rechengeschwindigkeiten, Übertragungsraten usw...
Währe klasse, wenn mir da jemand unter die Arme greifen könnte und mir
erklärt, wie es zu diesen Fehlern kommt, und wie ich sie in Zukunft
vermeiden kann.

Oliver

----- Original Message -----
From: "Hypergrip" <Hypergrip_(at)_gmx.de>
To: <php_(at)_phpcenter.de>
Sent: Wednesday, February 13, 2002 3:56 AM
Subject: [php] "Buch-Script" rennt sich selber über den H aufen ??


> 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
> --
> ** http://www.php-center.de **
> Die PHP-Liste: mailto: php_(at)_phpcenter.de
> http://lists.phpcenter.de/mailman/listinfo/php


php::bar PHP Wiki   -   Listenarchive