• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

PHP DB - einträge mit mehreren wörtern werden nicht geupdatet

djmj

New member
Ich habe eine Datenbank deren Daten aus einem Textfeld kommen.

Alles funktioniert wenn jemand ein einzelnes Wort schreibt wird dieses falls schon vorhanden geupdatet. (also n inkrementiert)

Doch wenn jemand "hallo ihr" schreibt und "hallo ihr" in der DB schon vorhanden war, wird dieses nicht geupdatet, sondern ein neuer Eintrag gemacht.

Sobald mehrere Wörter in dem Eintrag sind wird es nicht geupdatet.

hier mein code:

PHP:
function Insert($textfield) {
	
 $query = "SELECT * FROM queries";  
 $result = mysql_query($query) or die(mysql_error());  
 $row = mysql_fetch_array( $result );
 $n = $row['n'];
	
 $name_low = strtolower($textfield);	
 $name = str_replace(array('.', '/', ':', ';', '€', '$', '%', '§', '{', '}', '[', ']', '=', '+', '-', '*', '_', '\"', '\'', '\<', '\>', '\´', '\`', '\^', '\°', '\|', '\-')," ", $name_low);
	
 echo $name;

 if ($row['name'] == $name) {
  $n++;
  $query = "UPDATE queries SET n='$n' WHERE name='$name'";  
  $result = mysql_query($query) or die(mysql_error()); 
  echo "Data Updatet!";
  echo "<br />";
 }
 else {
  mysql_query("INSERT INTO queries 
  (name, n) VALUES('$name', '1' ) ") 
  or die(mysql_error());  	
  echo "Data Inserted!";
  echo "<br />";
 }	
}

jemand ne idee ?
 
einen unique schlüssel über die spalte "name" setzen und dann so:

PHP:
function Insert($textfield) {
    $textfield = strtolower($textfield);    
    $textfield = str_replace(array('.', '/', ':', ';', 'EUR', '$', '%', '§', '{', '}', '[', ']', '=', '+', '-', '*', '_', '\"', '\'', '\<', '\>', '\´', '\`', '\^', '\°', '\|', '\-')," ", $textfield);
    
    mysql_query("INSERT INTO `queries` SET `name` = '".mysql_real_escape_string($textfield)."',
                                            `n` = 1
                 ON DUPLICATE KEY UPDATE `n` = `n` + 1") OR die(mysql_error());
}
und sorry, aber ich hab grad nicht die nerven zu erklären was du (alles) falsch gemacht hast
 
Zuletzt bearbeitet:
danke funktioniert :)

Aber was genau an meinem code falsch war weiss ich nicht,
anstatt replace könnte man reg. ausdrücke nutzen aber sonst.

Ok ich habe gestern auch erst mit mysql angefangen.
 
Zurück
Oben