Foreach petit problème

Anthony88
Invité n'ayant pas de compte PHPfrance

18 nov. 2014, 11:32

Bonjour à tous,

j'ai un petit problème avec ma boucle pour réaliser mon update sur ma base de donnée. Je vous mets le code ci dessous avec un echo de la requète. Quand je lance la boucle il n'y a aucun message d'erreur cependant dans ma base de donnée les données ne sont pas changé. Je ne trouve pas pouvez vous m'aider SVP.

Code : Tout sélectionner

foreach ($tableau as $id => $name) { $r5 = "UPDATE details SET name = '".$name."' WHERE idart = '".$id."'; "; /*echo $r5;*/ $r55 = mssql_query($r5) or die('Erreur SQL !'.$r5.'<br>'.mysql_error()); }
Voici les echos que j'ai fait mes requètes sont bonnes avec les bons choix que j'ai fait dans mon formulaire :
UPDATE details SET name = '1' WHERE idart = '16'; UPDATE details SET name = '2' WHERE idart = '17';
j'ai essayé aussi cette écriture mais ça ne change rien
UPDATE details SET name = '1' WHERE idart = '16' UPDATE details SET name = '2' WHERE artidart det = '17'
Merci d'avance à tous

Invité
Invité n'ayant pas de compte PHPfrance

18 nov. 2014, 11:36

j'ai foiré le copié/coller
UPDATE details SET name = '1' WHERE idart = '16' UPDATE details SET name = '2' WHERE idart det = '17'

Invité
Invité n'ayant pas de compte PHPfrance

18 nov. 2014, 11:37

j'ai foiré le copié/coller
UPDATE details SET name = '1' WHERE idart = '16' UPDATE details SET name = '2' WHERE idart= '17'

Mammouth du PHP | 2278 Messages

18 nov. 2014, 11:53

Teste le copier/coller dans phpmyadmin ou equivalent et envoie la reponse.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Invité
Invité n'ayant pas de compte PHPfrance

18 nov. 2014, 12:04

pour le premier
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE details SET name = '2' WHERE idart= '17'' at line 1
pour le deuxième ça marche sur phpmyadmin :o mais pas avec mon php
UPDATE details SET name = '1' WHERE idart = '16'; UPDATE details SET name = '2' WHERE idart= '17'; 

Invité
Invité n'ayant pas de compte PHPfrance

18 nov. 2014, 12:20

A la ligne

Code : Tout sélectionner

$r55 = mssql_query($r5) or die('Erreur SQL !'.$r5.'<br>'.mysql_error()); il fallait mettre simplement $r55 = mysql_query($r5) or die('Erreur SQL !'.$r5.'<br>'.mysql_error());

Mammouth du PHP | 2278 Messages

18 nov. 2014, 12:29

foreach ($tableau as $id => $name)
{
$r5 = "UPDATE details
SET name = '".$name."'
WHERE idart = '".$id."'; ";
print "<br>$r5"; //pour avoir une requete à la fois
$r55 = mssql_query($r5) or die('Erreur SQL !'.$r5.'<br>'.mysql_error());
}
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD