Probleme Explode et Requete

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 : Probleme Explode et Requete

par Sékiltoyai » 01 juil. 2007, 14:43

Ton shéma de tables est mal architecturé.
Avec une bonne architecture, tu devrais pouvoir faire ca en une seule requète.
Réfère toi à ce sujet : http://www.phpfrance.com/forums/voir_sujet-12694.php

par mazflo007 » 01 juil. 2007, 12:55

Voici ma requête complète
Rappel : je veux que $requete2=mysql_query("SELECT * FROM test where id='". $explosion[2] ." OR id='". $explosion[3] ." .........");
 
  $requete=mysql_query("SELECT listquest  FROM test_user WHERE id='" .$userrow["id"] ."'");	
   
 while($row=mysql_fetch_array($requete)) 
 { 
   $tableau1 = explode(",", $row[0]);                                 
                for ($cpt=0; $cpt < count($tableau1); $cpt++) {
					
$requete2=mysql_query("SELECT * FROM test where id = ".$tableau[$cpt]." ");
 } 
while ($row=mysql_fetch_array($requete2))
{
$page .="<tr><td>$row[1]</td><td>$row[2]</td><td>$row[10]</td><td>$row[11]</td></tr>";
}
$page .= '</table>';

   }
}

par Dom! » 01 juil. 2007, 12:43

J'ai essayé cela
       $tableau1 = explode(",", $row[0]);                                 
                
                for ($cpt=0; $cpt < count($tableau1); $cpt++) {
  

$requete=mysql_query("SELECT * FROM test where id = ".$tableau[$cpt]." ");
 }  
mais ca ne marche pas
C'est la meme chose mais : ".$tableau1[$cpt]." ");

par mazflo007 » 01 juil. 2007, 12:41

J'ai essayé cela
       $tableau1 = explode(",", $row[0]);                                 
                
                for ($cpt=0; $cpt < count($tableau1); $cpt++) {
  

$requete=mysql_query("SELECT * FROM test where id = ".$tableau[$cpt]." ");
 }  
mais ca ne marche pas

par Dom! » 01 juil. 2007, 12:30

Je te donnes mon code pour que tu puisses comparer :
<table width="95%" border="1" align="center" cellpadding="1" cellspacing="0" bordercolor="#0000CC" style="cursor:pointer;" onmouseover="changeto('#0066FF')" onmouseout="changeback('#FFFFFF')">
      <tr>
        <td width="11%" align="center" bordercolor="#0000CC" bgcolor="#FFFFFF" class="Style8" cellspacing="1">Nom</td>
        <td width="50%" align="center" bordercolor="#0000CC" bgcolor="#FFFFFF" class="Style8" cellspacing="1">Pr&egrave;nom</td>
        <td width="25%" align="center" bordercolor="#0000CC" bgcolor="#FFFFFF" class="Style8" cellspacing="1">Naissance</td>
        </tr>

  
 <?php  
 	$tableau1 = explode(",", $selectequ["liste_id_joueur"]);								 
				
				for ($cpt=0; $cpt < count($tableau1); $cpt++) {
					$sqlent = 'select nom, prenom, datenais
			    	from tb_membres
					where id_membre = '.$tableau[$cpt];
					 
						 if ($resselectent = mysql_query($sqlent)) {
    while ($selectent = mysql_fetch_array($resselectent))
 
 
 print '<tr bgcolor="#FFFFFF" '.$color.'> 
    <td><div align = "center">'.$selectent["nom"].'</a></div></td>
    <td>'.$selectent["prenom"].'</td>
    <td>'.$selectent["datenais"].'</td></tr>';
 }
 }
	?></table>

par mazflo007 » 01 juil. 2007, 12:26

oui mais si j'utilise un while ma requête va donner id='". $explosion[$idExplosion] ."

par Dom! » 01 juil. 2007, 12:24

Bonjour,

Il te faut un While je pense !
Par exemple :
if ($resselectent = mysql_query($sqlent)) {
while ($selectent = mysql_fetch_array($resselectent))
Et :
$tableau1 = explode(",", $selectequ["liste_id_joueur"]);			
for ($cpt=0; $cpt < count($tableau1); $cpt++)

Probleme Explode et Requete

par mazflo007 » 01 juil. 2007, 12:16

Bonjour,

while($row=mysql_fetch_array($requete)) 
 { 
$explosion = explode(",",$row[0]);
 $nbexplo = count($explosion);
$requete=mysql_query("SELECT * FROM test WHERE id='". $explosion[0] ."' OR id='". $explosion[1] ."' OR id='". $explosion[2] ."' OR id='". $explosion[3] ."' OR id='". $explosion[4] ."' ");
}
Voici mon problème j'utilise la fonction explosion
et j'aimerais savoir comment faire pour ne pas répéter tout le temps OR id='". $explosion[2] ." OR id='". $explosion[3] ."
Je ne vois pas comment faire, j'ai deja essayé avec une boucle en plus mais ma requete MYSQL devient WHERE id='". $explosion[$idExplosion] ."
et cela ne vas pas .
Pouvez-vous m'aider ?
Merci d'avance