Page 1 sur 2
Requête sur un champ
Posté : 27 juin 2005, 13:40
par dawa212
Bonjour.
J'ai un problême MYsql.
Si je fait une simple requête sur sur un champ et que le nombre indiqué
dedant ne correspond pas a la valeur de mon champ, il ne se passe rien !
Je ne devrait pas avoir une erreur du genre 'no found' ?
$sql_tbl_clients = " SELECT num1,
FROM clients
WHERE num1 ='1' ";
En gros, quoi que je mette a la place du 1 , mysql ne me retourne rien .
Merci
Posté : 27 juin 2005, 13:42
par zeus
1 - Si tu veut tester sur un nombre, c'est champ=1
2 - Si tu veut tester sur une chaine, c'est champ LIKE '1'
3 - Si ta requete ne retourne aucun résultats, il n'y a pas de messages d'erreur, mais juste aucun résultats retournés
Sinon, qu'est ce que tu voudrais avoir et que tu n'arrive pas à avoir ?
Posté : 27 juin 2005, 13:51
par dawa212
J'ai une fonction pour gerer des erreurs. Elle fonctionne chaque fois que mysql retourne un erreur et la j'aimerais l'utiliser sur une requete d'un champ pour avoir en retour un message du genre : ce client n'existe pas !
$sql_tbl_clients = " SELECT num1
FROM clients
WHERE num1 ='$num1'
$sql_resulclients = mysql_query( $sql_tbl_clients );
if ( mysql_error() != '' ) {
$message = mysql_error();
header("Location: $error_page?code=$error_mysql_query&message=$message");
exit;
}
$rowclients = mysql_fetch_array( $sql_resulclients );
if ( mysql_error() != '' ) {
$message = mysql_error();
header("Location: $error_page?code=$error_mysql_query&message=$message");
exit;
}
";
Posté : 27 juin 2005, 13:56
par zeus
//Construction de la requete
$requete = "SELECT COUNT(*) FROM maTable WHERE err_no =".$num;
//Exécution de la requete
$o_result = mysql_query($requete);
//Récupération du résultat
$nb_result = mysql_fetch_result($o_result, 0, 0)
//Si aucun résultat
if ($nb_result == 0)
echo "Aucun client";
Posté : 27 juin 2005, 14:08
par ouckileou
pourquoi as-tu rouvert un autre topic dawa212 ? les réponses de l'autre ne te convenait pas ?
Posté : 27 juin 2005, 14:10
par dawa212
J'y arrive pas
En fait ce que tu essayes de faire, c'est de faire une requête sur le resultat de la précédente ?
J'ai fait ca :
$requete = "SELECT COUNT(*) FROM clients WHERE err_no = $num1 ";
//Exécution de la requete
$o_result = mysql_query($requete);
//Récupération du résultat
$nb_result = mysql_fetch_result($o_result, 0, 0)
//Si aucun résultat
if ($nb_result == 0)
echo "Aucun client";
Il me donne une erreur pour le if ...
Posté : 27 juin 2005, 14:11
par DroP
il manque les acollades
//Si aucun résultat
if ($nb_result == 0){
echo "Aucun client";
}
else {
//sinon
}
Posté : 27 juin 2005, 14:19
par zeus
Les langages de script acceptent de ne pas mettre de { mais ne prennent en compte qu'une ligne, c'est du rapide scripting, c'est le même principe que d'écrire
$var = ($test == 0) ? "coucou" : "rien";
a la place de
if ($test == 0)
$var = "coucou";
else
$var = "rien";
Posté : 27 juin 2005, 14:20
par dawa212
même problême
ca serait miraculeux

j'y suis depuis vendredi pour m'apercevoir que MySql me retournait rien ...

Posté : 27 juin 2005, 14:25
par zeus
Grrrr
Il faut SORTIR les variables des chaines. Ca entraine des erreurs de CAST
$requete = "SELECT COUNT(*) FROM clients WHERE err_no = ".$num1;
Posté : 27 juin 2005, 14:36
par dawa212
1
2 $requete = "SELECT COUNT(*) FROM clients WHERE err_no = ".$num1;
3 //Exécution de la requete
4 $o_result = mysql_query($requete);
5
6 //Récupération du résultat
7 $nb_result = mysql_fetch_result($o_result, 0, 0)
8
9 //Si aucun résultat
10 if ($nb_result == 0){
11 echo "Aucun client";
12 }
13 else {
14 //sinon
15 }
Parse error: parse error in test.php on line 10 !
j'y pyge rien , c'est un peu dur pour moi mais j'ai un peu de temps.
Posté : 27 juin 2005, 14:38
par ouckileou
parse error : erreur de syntaxe
pas d'erreur ligne 10, donc tu remontes
et là tu vois qu'il manque un point-virgule final à la ligne 7
Posté : 27 juin 2005, 14:41
par zeus
Magnifique analyse
ouckileou
Encore une erreur "made in Zeus"

Posté : 27 juin 2005, 14:42
par dawa212
oui je l'avais vu mais quand je le met, j'ai ...
Fatal error: Call to undefined function: mysql_fetch_result() in test.php on line 10
Mais ne te prends pas la tête, je suis nul

Posté : 27 juin 2005, 14:43
par zeus
C'est encore une de mes erreurs.
C'est :
$nb_result = mysql_result($o_result, 0, 0);
Je travaille sur 2 truc en même temps, je vais arreter le forum pour un moment