mysql avec variable

Eléphanteau du PHP | 11 Messages

12 avr. 2006, 02:35

bonjour,
je n'arrive pas à faire une chose qui semble être toute simple, une requete mysql avec une séléction à l'aide d'une variable. je ne comprends pas.

code (est le nom du champ)
codefilm(est la variable du code recherché)
<?php
mysql_connect("192.168.0.10", "user", "passe");
$result = mysql_db_query("dadabase","select * from films where code = codefilm");
while ($row = mysql_fetch_array($result)) 
{
if ($row['code'] == $codefilm)
{$titrefilm = $row["titre"];}
}
?>
sans "where code = codefilm" cela fonctionne très bien, mais je n'ai pas envie de lire toute la table pour un seul enregistrement qui m'interesse. Quelqu'un voit il d'ou vient le problème.

Merci

PHP 5.1.2 MySQL Server 4.1

ViPHP
ViPHP | 656 Messages

12 avr. 2006, 04:51

Je sais pas si c'est ce que t'a fait mais :

select * from films where code = codefilm ça ne designe pas une variable sans le $

Je te conseil plus cette formulation :

select * from films where code='$codefilm';

Eléphant du PHP | 209 Messages

12 avr. 2006, 10:10

Il est peut-être également nécessaire de caster ta variable.
$result = mysql_db_query("dadabase","select * from films where code = ". $codefilm .";");
En SQL, une requête se fini par un point virgule. J'ai vu qu'elles fonctionnaient également sans dans les fichiers php mais je les mets quand même.

Je te conseille également de mettre toutes tes tables au singulier, ça te permettra de toujours savoir qu'il n'y a pas de s à la fin du nom de telle ou telle table.

Eléphanteau du PHP | 11 Messages

12 avr. 2006, 12:30

Merci à vous 2, cela fonctionne avec la synthaxe suivante:

$result = mysql_db_query("dadabase","select * from films where code = '$codefilm';");


ah les erreurs de débutant, je passe du RPG de mon bon vieil AS400 vers le php....... c'est génial ! !!

encore merci

ViPHP
ViPHP | 656 Messages

15 avr. 2006, 18:58

Moi c'est pas mieu, 2 semaines de C++ et je savais plus faire un echo sur PHP sans generer une erreur :p

(Ba oui std::cout << "Message" << std::endl; ça marche pas :p)

N'oublis pas le tags Résolu