PHP retour du resultat d'une requete>condition - Programmation
Marsh Posté le 26-03-2002 à 00:04:03
if($data = mysql_fetch_array($req))
change ca en :
if($data [B]==[/B] mysql_fetch_array($req))
Marsh Posté le 26-03-2002 à 00:12:26
Non, ca ne fait rien. Toujours la même erreur. D'ailleurs c'est, je pense, pas la peine de mettre = ou == car j'ai deja stoclé le resultat dans $data quelques lignes au dessus...
Ca donne maintenant :
Citation : // On stock le résultat dans $data |
Marsh Posté le 26-03-2002 à 00:18:57
tfasson tu peut pas faire ca.
Tu peut pas sortir un resultat comme ca tu doit le parcourir dabord exemple dans ton cas mettre
while (list($nom)=mysql_fetch_row($req))
{
$data=$nom
}
ensuite pour le test c pareil, tu te fait une requete qui te sors tout tes cd
$sql="SELECT cd_nom FROM cd";
$req = mysql_query($sql);
tu met ca dans un while comme precedemment et dedans tu feras ton test
Marsh Posté le 26-03-2002 à 00:25:38
Mais dans ce cas la, je devrai n'avoir qu'un seul resultat ( enfin qu'une seue ligne ) vu que je ne doit avoir qu'un cd du même nom. Je suis quand même obligé de faire un while ?
De plus, je viens de trouver un faute d'orthogrpahe qui pourrait expliquer le 3eme chmaps manquant. J'essaie avec la correction :
Citation : <input type="text" name="cd_pace_restante"> |
est devenu
Citation : <input type="text" name="cd_place_restante"> |
je ne l'avais pas mit au debut pour ne pas surcharger le sujet de ma question...
Marsh Posté le 26-03-2002 à 00:27:13
meme avec un seul resultat oui tu doit faire le while
essaye de toute facon ta rien a perdre
Marsh Posté le 26-03-2002 à 00:32:11
Je viens de faire 2-3 essai avec la correction de faute d'ortho et apparemnt ca marche.
je vais quand même faire le while pour 'rester dans les règles'
Marsh Posté le 26-03-2002 à 00:33:58
ben franchement le while ne sert a rien si le nom du cd est clé de ta table !
Marsh Posté le 26-03-2002 à 00:34:06
je sais pas du tout si c les regles mais moi je fait comme ca
Marsh Posté le 26-03-2002 à 00:39:32
Citation : // On envoie la requete |
Voila, comme ca ca marche aussi.
Le while doit pas servie a grand chose mais en general on obtient plusieurs lignes donc je crois que toujours le mettre n'est effectivement pas une mauvaise chose...
Merci de m'avoir aider...
Promis, une fois fini, je propose tout ca au téléchargement !!!
Marsh Posté le 26-03-2002 à 00:44:05
mouairf ... l'optimisation c faire au plus juste avec la situation qui se présente ... dans ton cas, vu que tu ne PEUT PAS avoir 2 fois le meme nom de cd, le while est TOTALEMENT inutile ...
mais bon ... chacun fait comme il veut
Marsh Posté le 25-03-2002 à 23:54:33
Salut,
en ce moment, je suis en train de me faire une petite interface de gestion de mes CD ( je vous la livrerai pour vos commentaires et remarques une fois terminée ).
Mais pour l'instant, je plante sur un pb :
Apparement je passe jamais dans le if et toujours dans le else car j'obtiens une erreur :
Erreur SQL !
INSERT INTO cd VALUES ('cd24', '', '' ;
Duplicata du champ 'cd24' pour la clef 1
D'ailleurs, normalement, je pense que j'aurais dut obtenir une valeur dans les 3emes '' ... du genre ('cd24', '', '210'
// On créer la requete SQL : Sélectionner le CD ayant le nom du champ de saisie
$sql = "SELECT *
FROM cd
WHERE cd_nom='$cd_nom' ;" ;
// On envoie la requete
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()) ;
// On stock le résultat dans $data
$data = mysql_fetch_array($req) ;
// On test si on a un CD portant déja le nom : Donc $data doit être nul
// Si on obtient une réponse, c est que le Cd existe déjà
if($data = mysql_fetch_array($req))
{
// Le CD existe déja
print("$cd_nom existe déja" ) ;
}
// Pour insérer un CD, $data doit être nul
else
{
// On créer la requete SQL et on l'envoie
$sql = "INSERT INTO cd
VALUES ('$cd_nom', '', '$cd_place_restante' ;" ;
// On envoie la requete
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()) ;
// On ferme la connexion à mysql
mysql_close() ;
}
Ci quelqu'un pouvait m'éclairer... Marci d'avance