Générer un message d'erreur

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Générer un message d'erreur

par Truc » 28 déc. 2005, 15:40

non d'où sort cette avriable $donnees ?? a ce niveau du code ?!

le paramètre est une resource et que dis la doc sur le retour de la fonction mysql_query() ?!

par betman » 28 déc. 2005, 15:36

oui pardon j'ai pas du faire attention en lisant.

donc si j'ai bien pigé le paramètre est :

<?php

include('connection.inc.php');
$query = "SELECT * FROM agent WHERE nom LIKE '".$_POST['nom']."%' AND postal LIKE '".$_POST['postal']."%'
AND ctp LIKE '".$_POST['ctp']."%' ORDER BY nom";
$reponse = mysql_query($query)or die ('Erreur SQL !<br>'.mysql_error());

$reponse = mysql_num_rows($donnees);
if(reponse == 0)
{
echo ("<p>Pas de résultats</p>\n");
}
else
{
while ($donnees = mysql_fetch_array($reponse) )
}

?>


mais cela me retourne cette erreur :


Parse error: parse error, unexpected '}' in c:\program files\easyphp1-7\www\site intranet\recherche2.php on line 96

La ligne 96 est la suivante :

}

^^

par Truc » 28 déc. 2005, 15:31

oui mais as tu regardé la doc (lien donné) sur cette fonction mysql_num_rows() ?!

elle prend un paramètre.

par betman » 28 déc. 2005, 13:28

re,

donc tu veux dire que je dois utiliser ça ?
	<?php

include('connection.inc.php');
$query = "SELECT * FROM agent WHERE nom LIKE '".$_POST['nom']."%' AND postal LIKE '".$_POST['postal']."%' 
AND ctp LIKE '".$_POST['ctp']."%' ORDER BY nom";
$reponse = mysql_query($query)or die ('Erreur SQL !<br>'.mysql_error());

$reponse = mysql_num_rows();
if(reponse == 0)
{
    echo ("<p>Pas de résultats</p>\n");
}
else
{
while ($donnees = mysql_fetch_array($reponse) )
}
?>

par Truc » 27 déc. 2005, 18:31

$reponse = donnees();
c'est la fonction que je n'ai pas bien comprise
donnees() n'est pas une fonction (du moins je suppose que tu n'en ait pas créée avec ce nom).

La structure est correcte mais il faut utiliser la fonction mysql_num_rows() qui teste le nombre de ligne revoyées par la requete.

par betman » 27 déc. 2005, 18:10

je crois comprendre, mais l'écrire je ne sais pas.

Donc, dans mon cas

Si reponse = données

alors j'affiche les résultats

sinon j'affiche le message d'erreur
$reponse = donnees();
if(reponse == 0)
{
    echo ("<p>Pas de résultats</p>\n");
}
else
{
while ($donnees = mysql_fetch_array($reponse) )
}
}
c'est la fonction que je n'ai pas bien comprise

par Truc » 27 déc. 2005, 17:43

l'exemple traite un résultat retourné (dans $action_xyz) par une fonction "fonction_abc()"
$action_xyz = fonction_abc(); 
et suivant ce résultat (test if)
if($action_xyz == "tel résultat") 
Si $action_xyz (le retour de la fonction) est égal un quelque chose (ici "tel résultat") alors on fait la 1ère action

Si ce n'est pas le cas on fait la 2eme action.

Jusque là c'est bon je pense ?!

et donc il te suffit de remplacer les différents variables et fonction par celle que je t'ai indiqué avant et de traiter en fonction de cela.

Tu inclus donc la boucle while() pour parcourir le résultat dans une des condition et dans l'autre tu peux y mettre le message indiquant qu'il n'y a pas de résultats.

par betman » 27 déc. 2005, 17:19

c'est pour ça que je demande des explications ^^ ;)

par Truc » 27 déc. 2005, 17:13

Ce que t'as montré Cyrano est un exemple !!!

Tu ne peut pas faire un copier coller comme ça sans comprendre :x

a la place de la fonction tu peut utiliser mysql_num_rows() et action un entier (zéro).

par betman » 27 déc. 2005, 16:06

hmm, j'ai un peu de mal à comprendre le fonctionnement.

j'ai écris ceci :
	<?php
include('connection.inc.php');
$query = "SELECT * FROM agent WHERE nom LIKE '".$_POST['nom']."%' AND postal LIKE '".$_POST['postal']."%' 
AND ctp LIKE '".$_POST['ctp']."%' ORDER BY nom";
$reponse = mysql_query($query)or die ('Erreur SQL !<br>'.mysql_error());



while ($donnees = mysql_fetch_array($reponse) )
{
$reponse = donnees();

if(donnees == "ctp")
{
    echo ("<p>Tel message</p>\n");
}
else
{
    echo ("<p>Tel autre message</p>\n");
}

?>
Forcément ça ne fonctionne pas. Mais dans ton message précédent, action et fonction définissent quoi exactement ?

action est = à ma réponse ou mes données ?

et fonction, comme son nom l'indique le nom de la fonction à exécuter?

par Cyrano » 27 déc. 2005, 14:22

Sommairement, le schéma est le suivant :
<?php
$action_xyz = fonction_abc();
if(action_xyz == "tel résultat")
{
    echo ("<p>Tel message</p>\n");
}
else
{
    echo ("<p>Tel autre message</p>\n");
}
En somme, tu dois avoir une alternative prévoyant deux possibilités: dans un cas, il n'y a pas d'erreur, tu auras tel message ou telle action, dans l'autre cas, tu afficheras tel autre message ou effectueras telle autre action.

Générer un message d'erreur

par betman » 27 déc. 2005, 14:16

re,

Je souhaiterais ajouter un message d'erreur dans le cas où les critères de la recherche ne sont pas valides (truc de noob, mais j'ai un peu de mal)

j'ai fait un truc ignoble comme ça :
	<?php
include('connection.inc.php');
$query = "SELECT * FROM agent WHERE nom LIKE '".$_POST['nom']."%' AND postal LIKE '".$_POST['postal']."%' 
AND ctp LIKE '".$_POST['ctp']."%' ORDER BY nom";
$reponse = mysql_query($query)or die ('Erreur SQL !<br>'.mysql_error());

if ($reponse==0) {echo "<div align='center' class='text_gras'>Désolé, aucun ctp ne
correspond aux agents de cette région. Vérifiez la valeur et relancez la recherche.</font></div>";}


while ($donnees = mysql_fetch_array($reponse) )
{

?>
Quelqu'un pourrais me guider vers la voix de la syntaxe correct :)