Doppelte Datenbankeingabe nach "implode" - Funktion

Hallo liebe Leute,

ich bekomme manchmal (nicht immer) eine komische Datenbankeintragung, wenn meine User Kommentare Posten wollen.


PHP:
  $kom = mysqli_real_escape_string($db, $_GET["comment"]);        
  $sql = "SELECT * FROM newtext WHERE id = $text";
  if ( mysqli_query($db, $sql)) {
                       while ($row = @mysqli_fetch_object($result2)) {
                                               $komcount = $row->komcount + 1;
                                               $name = $_SESSION['user'];
                                               $datum = date("d.m.Y, H:i") . " Uhr";
                                                
                                               $array = array ( '$kom', '$datum', '$name' );
                                               $kom =  implode ( '|| ', $array ) . '|*|';
                                               $kom = $row->kom . $kom ;                     // $kom wird mit
                                                                                                                  den bestehenden
                                                                                                                         SQL 
                                                                                                                       Kommentaren 
                                                                                                                  zusammengeführt.
  
$update = "UPDATE newtext SET kom='$kom', komcount='$komcount' WHERE id='$text'";
          
          
                                                 if ($query1= mysql_query($update)) {

 echo "<p><script language='JavaScript' type='text/javascript'>document.write(''); setTimeout('self.location=\"textshow.php?showUid=$Uid&showtext=$text&user=$Uname\"', 10)</script></p>";
  
  
                                      } }

ich habe es auch schon damit probiert , das implode wegzulassen :

PHP:
$kom = $kom . "||" . $datum . "||" . $name . "|*|" ;

da kommt aber das Selbe raus.
Komisch ist, dass es wirklich nicht immer passiert.
Aber wenn, dann bekomme ich Einträge wie :

Ja||25.03.2011, 18:54 Uhr||Schokolade|*|Ja||25.03.2011, 18:54 Uhr|||*|

wiederum komisch ist, dass der String fast doppelt eingeschrieben wird. Nur der Name fehlt am Ende, was dann zu der Verschmelzung der Trennzeichen (|| u. |*| -> zu -> |||*| ) führt....

Ich habe schon alles durchprobiert und finde einfach keine Lösung.
Es wäre sehr nett, wenn mir jemand auf die Sprünge helfen könnte.

Kann es vielleicht auch an mysql liegen. Denn kurz nach dem Absenden des Kommentares wird er nur einmal angezeigt. Erst beim aktualisieren der Seite erscheint es doppel...


Vielen Dank im Vorraus.
Michael
 
Wie wäre es wenn du eine vernünftige Tabellenstruktur übernimmst, wie es sich für eine Datenbank gehört und nicht einfach ein dateibasierendes Kommentarsystem in die Datenbank "reinpresst"?

Dadurch wäre es SEHR viel angenehmer damit zu arbeiten.
 
Mhhh, ich hab mir das alles mal eben selbst beigebracht und wüsste auch nicht,
wen ich fragen könnte, wie das in meinem Fall zu machen sei.

Bei mir werden Texte kommentiert, allerdings weiß ich doch nie, wie viele Kommentare kommen werden, also kann ich ja wohl schlecht eine Datenbanktabelle im Voraus erstellen.
Deshalb dachte ich , ich mache es so- dann kann die Datei so viel reinschreiben, wie sie will...

Wenn es dafür eine bessere Lösung gibt, wäre es schön , wenn ihr mir ein kleines Codebeispiel geben könntet....

Liebe Grüße und Danke im Voraus
Michael
 
Bei mir werden Texte kommentiert, allerdings weiß ich doch nie, wie viele Kommentare kommen werden, also kann ich ja wohl schlecht eine Datenbanktabelle im Voraus erstellen.
Deshalb dachte ich , ich mache es so- dann kann die Datei so viel reinschreiben, wie sie will...

Liebe Grüße und Danke im Voraus
Michael

Autsch, dann schau nochmal ganz genau nach was Datenbanken sind und wie sie funktionieren.
Die Tabelle legt nur die Struktur fest, da kannst du auch permanent neue Einträge hinzufügen.

Außerdem wird sie um einiges schneller sein als eine Textdatei, vor allem bei vielen Einträgen.
 
Zurück