begin process at 2012 02 14 17:23:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

parcourir tout les enregistrements de ma table


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

parcourir tout les enregistrements de ma table

vendredi 12 juin 2009 à 09:48:14 | parcourir tout les enregistrements de ma table

ikramta



bonjour tout le monde.
je suis dans la cas de faire pas mal de teste sur pas mal de table de ma base .
je veux chaque foit parcourir par exemple la table client pour savoir si un client est déja inscrit ou pas .

comment je peut améliorer mon code et merci bien d'avance.

$clt=0;
$req=mysql_query("SELECT num_carte,type_carte,id_clt FROM client"); 
 while($rep=mysql_fetch_array($req))
 {
 if(($identite==$rep['num_carte']) and ($typ==$rep['type_carte']))
 {
 $id=$rep['id_clt'];
 $clt=1;
 }
 } 
 if($clt==1) 
 {
 $req1=mysql_query("SELECT * FROM hors_ser WHERE statut='v'");
}



merci bien et bon code.

vendredi 12 juin 2009 à 12:51:57 | Re : parcourir tout les enregistrements de ma table

syndrael

Pourquoi tu ne rajoutes pas un WHERE dans ton select et un limit 0,1 ?
S.
vendredi 12 juin 2009 à 16:10:08 | Re : parcourir tout les enregistrements de ma table

coach759

Bonjour, tu peux faire

$sql=mysql_query('SELECT COUNT(*) AS nb FROM  client WHERE num_carte="'.$identite.'" AND type_carte="'.$typ.'"');

$sql=mysql_fetch_array($sql);

if($sql['nb']>0) alors il est présent.
sinon .....

voila


Si à la Saint Valentin elle te caresse la main, vivement la Sainte Marguerite...
vendredi 12 juin 2009 à 16:46:31 | Re : parcourir tout les enregistrements de ma table

syndrael

Ca revient à peu près à ma solution, 'sauf' que la mienne est plus rapide à l'exécution.. LOL !!
Je chipote..
S.

vendredi 12 juin 2009 à 20:36:40 | Re : parcourir tout les enregistrements de ma table

kohntark

Membre Club
Salut,


Tu devrais utiliser les jointures, par exemple :

SELECT a, b, c
FROM client INNER JOIN hors_ser ON client.num_carte = hors_ser.num_carte
WHERE statut='v' AND  num_carte='$identite' AND type_carte='$typ';

En supposant que le champ num_carte soit la jointure des 2 tables.
Les lettres a, b, c, ... étant les champs de ta table hors_ser dont tu as besoin.
Ca serait 100 fois plus rapide et efficace.


Cordialement,


Kohntark -

vendredi 12 juin 2009 à 20:47:27 | Re : parcourir tout les enregistrements de ma table

kohntark

Membre Club
@Syndrael :
Je ne suis pas sur du tout que ta requête soit plus rapide que celle de Coach, ça peut même être le contraire si le nombre d'enregistrements est très élevé.
Mais moi aussi, je chipote, car la différence d'exécution des 2 requêtes doit être vraiment minime.


Cordialement,


Kohntark -

vendredi 12 juin 2009 à 22:42:40 | Re : parcourir tout les enregistrements de ma table

syndrael

euh.. je ne pense pas que la jointure que tu donnes soit possible puisque rien ne dit que hors_ser contient une colonne num_carte non ?? même si je pense que id_clt doit bien faire qqc dans l'ensemble..
Quant à l'exécution de ma requête, le but de la manip est de savoir s'il y en a une existence ou non.. le traitement de la requete s'arrête au premier trouvé.. Le count(*) sera potentiellement plus rapide s'il y a un index sur nm_carte et type_carte. Dans le cas contraire, ce sont toutes les lignes qui sont traitées..
Allez devant ses qqs neurones grillés je vais me coucher.
Bonne soirée
S.



samedi 13 juin 2009 à 11:32:45 | Re : parcourir tout les enregistrements de ma table

kohntark

Membre Club
euh ... j'ai écrit "En supposant que le champ num_carte soit la jointure des 2 tables"
Nous sommes bien obligé de supposer, comme tu le fais aussi, vu les renseignements fournis.
Si num_carte n'est pas un champ de jointure il y a tout intérêt à le faire (ou un autre champ plus adapté qui existe peut être déjà, mais je ne suis pas devin)

Le count(*) sera potentiellement plus rapide s'il y a un index sur nm_carte et type_carte. Dans le cas contraire, ce sont toutes les lignes qui sont traitées..
=>
Même sans index cette requête pourrait être plus rapide =>

Quant à l'exécution de ma requête, le but de la manip est de savoir s'il y en a une existence ou non.. le traitement de la requete s'arrête au premier trouvé..
=>
... et si le premier trouvé est le dernier des 1 million d'enregistrements ? => toutes les lignes seront traitées et ta requête sera plus longue que celle de Coach

Menfin bref, à mon humble petit avis il vaut mieux faire une jointure et ne faire ainsi qu'une seule requête, ce qui sera bien plus performant que 2 requêtes + traitement PHP.
Faudrait faire des tests et regarder ce que dit l'optimiseur, mais la différence devrait être importante.


Cordialement,


Kohntark -

samedi 13 juin 2009 à 13:35:37 | Re : parcourir tout les enregistrements de ma table

syndrael

Tu as raison.. "enfin bref".. On lui souhaite son million d'enregistrement et surtout le jour ou il se dira: Tiens et si j'optimisais.. parce que j'en ai les compétences.
Donc au final ce serait bien qu'il nous réponde..LOL !!
Bonne journée
S.
lundi 15 juin 2009 à 11:21:36 | Re : parcourir tout les enregistrements de ma table

ikramta

bonjour tout le monde et merci bien pour tous.
bon j'ai un nouveau problème .
je prend l'exemple: j'inserre un client qui existe et une periode qui existe déja .
mon script au lieu d'excuté la premiere condition il passe toujours a la troisiemme.qui peut me dire comment corrigée  ça .
c'est le script final:

$req=mysql_query("SELECT num_carte,type_carte,id_clt FROM client"); 
 while($rep=mysql_fetch_array($req))
 {
 if(($identite==$rep['num_carte']) and ($typ==$rep['type_carte']))
 { $id=$rep['id_clt'];$clt=1; } 
 }
 
 $req1=mysql_query("SELECT * FROM hors_ser WHERE staut='v' and date_d='$date1' and date_f='$date2'"); 
     if($rep1=mysql_fetch_array($req1))
 {
 $id_p=$rep1['id_p'];$i=1; 
 }
 if(($clt==1) and ($i==1))
 {
 $req2=mysql_query("INSERT INTO ch_hs(id_ch,id_p,justification)VALUES('$n_ch','$id_p','reserver')");
 $req3=mysql_query("INSERT INTO  reservation VALUES('',CURRENT_TIMESTAMP(),'net','$date1','$date2','$obj','$adul','$bebe','$montant','carte bancaire','$id_type','$n_ch','Saidabeya','1','$id','a','v')");
if((!$req2) and (!req3))
{
?>
<script language="javascript">
  alert("reservation  non validé");
  window.location.replace('reservation.php');
</script>
<?php
}
else
{
?>
<script language="javascript">
  alert("reservation validé");
  window.location.replace('reservation.php');
</script>
<?php
}
 
 
 
 }
 else if(($clt==0) and ($i==1))
 {
 $req4=mysql_query("INSERT INTO client VALUES('','$titre','$nom','$prenom','$pays','$adresse','$codep','$ville','$mail','$tel','$fax','$web','$ncc','$tit','$val','$identite','$typ')");
 $req5=mysql_query("select id_clt from client  where nom='$nom' AND prenom='$prenom'");
    $rep5=mysql_fetch_array($req5);
 {$id=$rep5['id_clt'];}
 $req6=mysql_query("INSERT INTO ch_hs(id_ch,id_p,justification)VALUES('$n_ch','$id_p','reserver')");
 $req7=mysql_query("INSERT INTO  reservation VALUES('',CURRENT_TIMESTAMP(),'net','$date1','$date2','$obj','$adul','$bebe','$montant','carte bancaire','$id_type','$n_ch','Saidabeya','1','$id','a','v')");
if((!$req4) and (!rep5)and (!req6)and (!req7))
{
?>
<script language="javascript">
  alert("reservation  non validé");
  window.location.replace('reservation.php');
</script>
<?php
}
else
{
?>

<script language="javascript">
  alert("reservation validé");
  window.location.replace('reservation.php');
</script>
<?php
}
 
 
 
 
 
 }
 else if(($clt==1) and ($i==0))
 {
 $req8=mysql_query("INSERT INTO hors_ser VALUES('','$date1','$date2','v')");
 $req9=mysql_query("select id_p FROM hors_ser  WHERE date_d='$date1' AND date_f='$date2'");
    $rep9=mysql_fetch_array($req9);
 {$id_p=$rep9['id_p'];}
 $req10=mysql_query("INSERT INTO ch_hs(id_ch,id_p,justification)VALUES('$n_ch','$id_p','reserver')");
 $req11=mysql_query("INSERT INTO  reservation VALUES('',CURRENT_TIMESTAMP(),'net','$date1','$date2','$obj','$adul','$bebe','$montant','carte bancaire','$id_type','$n_ch','Saidabeya','1','$id','a','v')");
if((!$req8) and (!rep9)and (!req10)and (!req11))
{
?>
<script language="javascript">
  alert("reservation  non validé");
  window.location.replace('reservation.php');
</script>

<?php
}
else
{
?>
<script language="javascript">
  alert("reservation validé");
  window.location.replace('reservation.php');
</script>

<?php
}
 
 
 
 }
 else
 {
 $req12=mysql_query("INSERT INTO client VALUES('','$titre','$nom','$prenom','$pays','$adresse','$codep','$ville','$mail','$tel','$fax','$web','$ncc','$tit','$val','$identite','$typ')");
 $req13=mysql_query("select id_clt from client  where nom='$nom' AND prenom='$prenom'");
    $rep13=mysql_fetch_array($req13);
 {$id=$rep13['id_clt'];}
 
 $req14=mysql_query("INSERT INTO hors_ser VALUES('','$date1','$date2','v')");
 $req15=mysql_query("select id_p FROM hors_ser  WHERE date_d='$date1' AND date_f='$date2'");
    $rep15=mysql_fetch_array($req15);
 {$id_p=$rep15['id_p'];}
 
 
 $req16=mysql_query("INSERT INTO ch_hs(id_ch,id_p,justification)VALUES('$n_ch','$id_p','reserver')");
 $req17=mysql_query("INSERT INTO  reservation VALUES('',CURRENT_TIMESTAMP(),'net','$date1','$date2','$obj','$adul','$bebe','$montant','carte bancaire','$id_type','$n_ch','Saidabeya','1','$id','a','v')");
if((!$req12) and (!rep13)and (!req14)and (!rep15)and (!req16)and (!req17))
{
?>

<script language="javascript">
  alert("reservation  non validé");
  window.location.replace('reservation.php');
</script>

<?php
}
else
{
?>
<script language="javascript">
  alert("reservation validé");
  window.location.replace('reservation.php');
</script>
<?php
}
 
 
 
 }
 

merci bien d'avance et bon code.


1 2

Cette discussion est classée dans : table, carte, parcourir, rep, clt


Répondre à ce message

Sujets en rapport avec ce message

Affichage de doublons dans une recherche sur deux tables [ par rafou77 ] Bonjour,c'est encore moi le newbizzzVoilà mon probleme, je fais une recherche sur deux tables (credits (id,nom,prenom,ect..) ) et (credits5 ( id,id_cl Parcourir les colonnes d'une table [ par piep14 ] Bonsoir, je cherche le moyen de parcourir les colonnes d'une table. Car pour le moment j'ai fait : Code: <? $req2 = mysql_que problème de parcourir un tableau [ par ikramta ] salut tout le monde . j'ai une table sous mysql qui contient des enregistrements qui sont pws et login . je veut savoir comment faire pour parcour Api Google Maps ok en local mais pas en online [ par prachou ] Bonjour à tous ! Après avoir parcouru en vain la toile je me décide a créer un post pour mon problème auquel je n'ai toujours trouvé aucune solution. Probleme php [ par gege95 ] Bonjour !! J'effectue dans ma page une recherche toute simple sur un nom dans un table !! Cette requete à toujours fonctionnée jusqu'à ce que le nom s Problemen copy sur dédié [ par laubro ] bonjourj'ai un script de copie de repertoire qui tourne impec sur un espace mutualisé, mais une fois sur un dédié, il ne fonctionne pas bien, la copie peut-on rajouté les nouveaux enregistrements au debut de la table ? [ par hassane86 ] Bonjour a tous,   j'ai un petit sousi, peut etre qu'il est béte pour vous mai franchcment j'ai pa trouvé de solution, et je vous sollicite esperant qu changer la valeur de la clé primaire [ par Jejechezpas ] Bonjour, à tousJe cherche à changer la valeur d'une clé primaire tout en contrôlant que la nouvelle valeur n'est pas déjà existanteJ'ai une Table Expl auto increment = auto casse tête [ par phil2a ] Salut Voila mon pb. J'ai créé une table avec une clé auto-increment. Lors de l'ajout d'un enregistrement, cette clé s'incrémente de 10 en 10 alors que [PHP/MYSQL]Scripte d'ajout de points par allopass [ par healiha ] Bonjour tous le monde il se trouve que je tien un site et que j'aimerais que les utilisateurs gagnent 10 points quand l'allopass entré est bon de mani


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 28,345 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales