Requête sur un champ

dawa212
Invité n'ayant pas de compte PHPfrance

27 juin 2005, 13:40

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2005, 13:42

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 ?
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

dawa212
Invité n'ayant pas de compte PHPfrance

27 juin 2005, 13:51

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;
   }

"; 


Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2005, 13:56

//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";
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

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

27 juin 2005, 14:08

pourquoi as-tu rouvert un autre topic dawa212 ? les réponses de l'autre ne te convenait pas ?

dawa212
Invité n'ayant pas de compte PHPfrance

27 juin 2005, 14:10

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 ...

Eléphant du PHP | 91 Messages

27 juin 2005, 14:11

il manque les acollades
//Si aucun résultat
if ($nb_result == 0){
  echo "Aucun client";
}
else {
//sinon
}
YaTTa :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2005, 14:19

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";
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

dawa212
Invité n'ayant pas de compte PHPfrance

27 juin 2005, 14:20

même problême :-(

ca serait miraculeux :-) j'y suis depuis vendredi pour m'apercevoir que MySql me retournait rien ... :-)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2005, 14:25

Grrrr

Il faut SORTIR les variables des chaines. Ca entraine des erreurs de CAST
$requete = "SELECT COUNT(*) FROM clients WHERE err_no = ".$num1;
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

dawa212
Invité n'ayant pas de compte PHPfrance

27 juin 2005, 14:36

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.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

27 juin 2005, 14:38

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2005, 14:41

Magnifique analyse ouckileou

Encore une erreur "made in Zeus" :lol:
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

dawa212
Invité n'ayant pas de compte PHPfrance

27 juin 2005, 14:42

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 :-)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2005, 14:43

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
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