2016-03-21 9 views
1

meine SQL-Tabellemehr Zeilen in foreach-Schleife aktualisieren

table->requirement 

id  label_name  label_value  requirement_id 
103   budget   5000     4   
104  specialist  dentist    4   
105  treatment  clinic    4   
106  expertise  criminal    5   
107  charges   5100     5   

i label_value in dieser diese Tabelle von mysql-php zu aktualisieren versuche.

Ich habe diesen Code in PHP versucht, aber es funktioniert.

foreach ($data as $columnName => $colValue) { 
    echo $subQuery .= "UPDATE `$tableName` SET `label_value`='$colValue' where (`label_name`='$columnName' AND `requirement_id`='$id')"; 
    mysql_query($subQuery); 
    } 

LERNEN OUTPUT-

UPDATE requirement SET label_value = 'Arzt' where (label_name = 'Spezialist' AND requirement_id = '2')

UPDATE requirement SET label_value = 'Arzt' wo (label_name = 'Spezialist' UND requirement_id = '2')

UPDATE requirement SET label_value = 'On Your Home', wo (label_name = 'Termin' UND requirement_id = '2')

Ich weiß nicht, dies richtig ist oder nicht, aber ich brauche diese Tabelle in Form zu aktualisieren . Bitte hilf mir dabei.

+1

Well keine requirement_id 2 in der Tabelle existieren lernen !! – Saty

+0

Ich habe diese Anforderung überprüft_id 2 ist verfügbar –

+0

Und entfernen Sie einfach '.' aus'. = "UPDATE' weil es Ihre Abfrage jedes Mal verketten – Saty

Antwort

2

Sie müssen . von .= "UPDATE entfernen, da es Ihre Abfrage verketten wird.

Für erste itration der Schleife wird es

UPDATE `$tableName` SET `label_value`='$colValue' where (`label_name`='$columnName' AND `requirement_id`='$id' 

Diese Abfrage funktioniert erzeugen Aber für die zweite itration wird es

UPDATE `$tableName` SET `label_value`='$colValue' where (`label_name`='$columnName' AND `requirement_id`='$id' UPDATE `$tableName` SET `label_value`='$colValue' where (`label_name`='$columnName' AND `requirement_id`='$id' 

Diese falsche Syntax erzeugen ist.

Gerade Verwenden

foreach ($data as $columnName => $colValue) { 
    echo $subQuery = "UPDATE `$tableName` SET `label_value`='$colValue' where (`label_name`='$columnName' AND `requirement_id`='$id')"; 
    mysql_query($subQuery); 
    } 

Try mysqli or pdo zu lernen, weil mysql depricated ist

Auch mysqli_multi_query

+1

Ich habe deine Stimme nicht gesenkt, nur um ein großes zu sagen Danke, weil du mein Problem in kürzester Zeit hast –