Explorer plusieurs champs avec un seul script

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 : Explorer plusieurs champs avec un seul script

par Germaris » 15 févr. 2006, 22:46

MER-VEIL-LEUX !!!
Ça fonctionne à la perfection. Clean and Speedy.
J'ai mis $num entre quotes : '$num'

Tu es un chef !
Encore merci.
Bonne soirée si tu es en France
(moi je suis au Québec et il est 15:45)

:-) :-) :-)

par Germaris » 15 févr. 2006, 22:28

Enfin si le numero matricule est numerique, la requete suivante serait plus appropriee:
$result =mysql_query ("SELECT * FROM $table WHERE assoc=$num OR un=$num OR deux=$num OR trois=$num ORDER BY assoc, lastName, firstName, school " );
En esperant t'avoir aide.
Je te remercie pour ton travail.
Ta dernière requête est très intéressante.

Oui. le numéro matricule est numérique sauf dans un ou deux cas où il s'agit de combinaisons de chiffres et de lettres (exemple : 5172P ou SX324T). Mais je vais essayer ta version, ça ne coûte rien et je te tiendrai au courant.

Imagine un peu que je ne savais même pas qu'on pouvait employer OR !!! C'est te dire si je suis nul ! J'ai honte... :-)

Encore merci et à très bientôt.

par jaolan » 15 févr. 2006, 22:21

Ta requete
$result =mysql_query ("SELECT * FROM $table WHERE assoc LIKE '$num' ORDER BY assoc, lastName, firstName, school " )
devient
$result =mysql_query ("SELECT * FROM $table WHERE assoc LIKE '$num' OR un LIKE '$num' OR deux LIKE '$num' OR trois LIKE '$num' ORDER BY assoc, lastName, firstName, school " );
Pour differencier d'ou ca vient tu testes suivant les resultats:
if(!mysql_num_rows( $result ))
        echo "d'ou ki sort cet eleve...";
else
{
        if($row['assoc'])
                echo "l'est dans cette ecole";
        if($row['un'])
                echo "l'est dans celle-ci"; 
        if($row['deux'])
                echo "l'est dans celle-là";
        //etc...
}


Enfin si le numero matricule est numerique, la requete suivante serait plus appropriee:
$result =mysql_query ("SELECT * FROM $table WHERE assoc=$num OR un=$num OR deux=$num OR trois=$num ORDER BY assoc, lastName, firstName, school " );
En esperant t'avoir aide.

Explorer plusieurs champs avec un seul script

par Germaris » 15 févr. 2006, 21:34

Bonjour !

Voici un script qui permet à partir d'un fichier Flash d'envoyer un numéro matricule "snum" afin de trouver dans le champ assoc (pour association) de la table "_annuaire" l'identité d'un élève possédant ce matricule.
<?php
$num = $_POST[ "snum" ];
$table = "_annuaire";
include 'key.php' ;
mysql_connect( $host ,$user ,$pass) or die( "cannot connect " .mysql_error () ); 
mysql_select_db( $db ) or die( "cannot select db " .mysql_error () ); 
$result =mysql_query ("SELECT * FROM $table WHERE assoc LIKE '$num' ORDER BY assoc, lastName, firstName, school " ) or die ( "select error " .mysql_error () ); 
if ( mysql_num_rows( $result ) > 0) {
while ($row =mysql_fetch_array ($result ) ) {
$flashstr .= $row ["assoc" ]." : ".$row ["lastName" ]." ".$row ["firstName" ]."  ".$row ["school" ]."-".$row ["promo" ]."<br />";
}
print ("&erreur=Cette liste n'est pas cliquable."."&compte=".mysql_num_rows($result)."&listetotale=".urlencode($flashstr));
}
else
print ("&erreur=Aucun élève répertorié."."&compte="."&listetotale=");
?>
Le problème : un élève peut avoir eu plusieurs matricules dans les écoles successivement fréquentées. Ceux-ci sont stockés dans trois autres champs que nous appellerons un, deux et trois pour simplifier.

Comment modifier le script pour qu'il explore successivement les quatre champs (assoc, un, deux, trois) et ainsi retourner un résultat offrant la certitude que le matricule cherché figure (ou ne figure pas) dans la table en question ?

Merci d'avance pour votre aide !