probleme de requete

VaN
Mammouth du PHP | 1107 Messages

30 juin 2005, 15:33

le form :

Code : Tout sélectionner

<table> <tr> <td width="46">#1 :</td> <td><input type="file" name="pic1" /></td> </tr> <tr> <td width="46">alt #1 :</td> <td><input type="text" name="alt1" /></td> </tr> <tr> <td>#2 :</td> <td><input type="file" name="pic2" /></td> </tr> <tr> <td width="46">alt #2 :</td> <td><input type="text" name="alt2" /></td> </tr> <tr> <td>#3 :</td> <td><input type="file" name="pic3" /></td> </tr> <tr> <td width="46">alt #3 :</td> <td><input type="text" name="alt3" /></td> </tr> <tr> <td>#4 :</td> <td><input type="file" name="pic4" /></td> </tr> <tr> <td width="46">alt #4 :</td> <td><input type="text" name="alt4" /></td> </tr> </table>
le code :
for ($i=1;$i<=4;$i++) {
if (isset($_FILES['pic'.$i]['name']) && $_FILES['pic'.$i]['name']!='') {
$pic = $_FILES['pic'.$i]['name'];
$alt = $_POST['alt'.$i]['name'];
echo $pic." / ".$alt."<br />";

$sql_pics = "INSERT INTO market_pics VALUES ('','$id_market_article','$pic',$date',$alt')";
echo "SQL : ".$sql."<br>";
$query_pics = mysql_query($sql_pics) OR die("Erreur : ".mysql_error());
}
}
echo "<br />pics sent<br />";
les resultats des différents echo :

VaN.jpg / f
SQL : INSERT INTO market_articles VALUES ('','sg','fsg','fhg','dfh','2005-1-01','dhdg')
Erreur : Erreur de syntaxe près de '',f')' à la ligne 1

Comme on le voit dans les echo, il prend bien le nom de l'image VaN.jpg (surement la premiere), mais dans la requete, il ne le met pas.

ma boucle for() est foireuse ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

30 juin 2005, 15:42

Je dirais plutôt que c'est le code qui est foireux : tu construit la requete $sql_pics et tu affiche $sql :shock:
$sql_pics = "INSERT INTO market_pics VALUES ('','$id_market_article','$pic',$date',$alt')";
echo "SQL : ".$sql."<br>";
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

VaN
Mammouth du PHP | 1107 Messages

30 juin 2005, 15:44

effectivement. (trop de requetes tue les requetes :lol: )

voila le bon echo $sql_pics :

VaN.jpg / f
SQL : INSERT INTO market_pics VALUES ('','31','VaN.jpg',2005-1-01',f')
Erreur : Erreur de syntaxe près de '',f')' à la ligne 1


Raaaah, trouvé, manquait juste des ' dans la requete

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

30 juin 2005, 15:47

A la fin de ta requete, il manque des '

Tu aurais pu le voir tout seul si tu avait pris le temps

Et je te conseille vivement de prendre l'habitude de sortir tes variables de tes chaines, ç aévite pas mal de pb
$sql_pics = "INSERT INTO market_pics VALUES ('','".$id_market_article."','".$pic."','".$date."','".$alt".')"; 
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer