Probleme avec for

Résolu
Bonjour,
comment faire 2 for daffilée?

exemple

for (i=0 ; i<3 ; i++) && for (j=0; j<3; j++)

{....

quelle est la syntaxe??
Configuration: Windows XP
Internet Explorer 7.0

7 réponses

  1. 
    for (i=0 ; i<3 ; i++) 
    {
    }
    for (i=0 ; i<3 ; i++) 
    {
    }
    
    

    voila normalement sa marche comme sa
    0
    1. oue mais cela ne marche pas car le code suivant marche(c'est à dire que quanjd j'entre un des mots du titre ca marche avec explode)
      par contre si je veux faire if (($_POST['auteur']=='') && ($_POST['motstitre']!='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motscle']!='')) et la je ne sais pas comment faire car si je refais un for à la fin j'aurais un probléme notramment quand je fais while ($donnees = mysql_fetch_array($reponse)) car il y aura une autre requete réponse2 avec le 2éme for

      Comment faire??

      if (($_POST['auteur']=='') && ($_POST['motstitre']!='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motscle']==''))
      {

      $laRequete = "SELECT * FROM base_physique WHERE ";
      for($rangMotstitre = 0 ; $rangMotstitre < sizeof($mots2) ; $rangMotstitre++)
      {
      if($rangMotstitre > 0)
      $laRequete .= " OR ";
      $laRequete .= "motstitre LIKE '%" . $mots2[ $rangMotstitre ] . "%'";
      }

      $reponse = mysql_query( $laRequete );
      if( !$reponse )
      {
      $message = 'Requête invalide : ' . mysql_error() . "\n";
      $message .= 'Requête complète : ' . $laRequete;
      die($message);
      }

      if( mysql_num_rows( $reponse ) == 0 )
      {
      echo "Aucun résultat ne correspond à votre recherche";
      }

      else
      {
      ?>

      <p>
      <table width="1200" border="0" cellspacing="0" cellpadding="0">
      <tr>
      <td align="center">Auteur</td>
      <td align="center">Titre</td>
      <td align="center">Année</td>
      <td align="center">Journal</td>
      <td align="center">Volume</td>
      <td align="center">Page</td>
      <td align="center">Motsclé</td>
      <td align="center">Sujet</td>
      <td align="center">Pdf</td>
      <td align="center">References</td>

      </tr>

      <?php
      while ($donnees = mysql_fetch_array($reponse))
      {
      ?>

      <tr>
      <td align="center"><?php echo $donnees['auteur']; ?></td>
      <td align="center"><?php echo $donnees['motstitre']; ?></td>
      <td align="center"><?php echo $donnees['année']; ?></td>
      <td align="center"><?php echo $donnees['journal']; ?></td>
      <td align="center"><?php echo $donnees['volume']; ?></td>
      <td align="center"><?php echo $donnees['page']; ?></td>
      <td align="center"><?php echo $donnees['motscle']; ?></td>
      <td align="center"><?php echo $donnees['sujet']; ?></td>
      <td align="center"><a href="<?php echo $donnees['pdf']?>">pdf</a></td>
      <td align="center"><?php echo $donnees['references']; ?></td>
      </tr>

      <?php
      }
      ?>

      </table>
      </p>
      0
  2. quelqu'un a une idée???
    0
    1. Bonjour,

      il ne faut pas proceder ainsi, il faut construire une seule requette en fonction des données postées
      $laRequete = "SELECT * FROM base_physique WHERE ";
      
      if(isset($_POST['annee']) && $_POST['annee'] !=""){
      
      $laRequete.=" annee='".$_POST['annee']."'";
      
      }
      
      et idem pour tous les autres
      champs
      
      et à la fin tu fais mysql_query(...
      
      
      0
    2. @Alain_42tu veux dire qe si j'ai 5champs jer fais 5 fois ca ??

      car moi j'ai fais le cas ou je postais champ 1 ,champ2...
      puis champ1 ret champ2, champ1 et champ3...
      puis chanp 1 et champ2 et champ3.....

      j'ai pas besoin de faire toutca???
      0
    3. @ladj59J'avais compris que tu n'avais qu'un seul des champs à chaque fois.

      Tu veux dire que tu peux en avoir un ou plusieurs ?

      Est ce qu'il y en a un obligatoire ?
      0
    4. @ladj59Un petit complément:

      $laRequete = "SELECT * FROM base_physique WHERE auteur LIKE '%'";//si pas de champ saisi
      
      if(isset($_POST['auteur']) && $_POST['auteur'] !=""){//si auteur saisi
      	$laRequete.=" AND auteur='".$_POST['auteur']."'";
      }
      
      if(isset($_POST['motstitre']) && $_POST['motstitre'] !=""){
      
      	$laRequete.=" AND motstitre='".$_POST['motstitre']."'";
      
      }
      if(isset($_POST['annee']) && $_POST['annee'] !=""){
      	$laRequete.=" AND annee='".$_POST['annee']."'";
      }
      
      //etc, tu continues avec les autres champs
      
      //ensuite:
      
      $req=mysql_query($laRequete);
      //et la suite avec ta boucle while...
      //ainsi tu n'aura qu'une seule requette avec plus ou moinsd e conditions dans le WHERE
      0
    5. @Alain_42je vais essayer ceque tu m'as dit alain
      merci
      0
  3. Il manque le $ au début du nom de variable laRequete. La ligne 14 doit être :
    $laRequete = "SELECT * FROM base_physique WHERE auteur LIKE '%'"; //LIGNE 14
    


    Il manque l'appel à mysql_query.

    Par ailleurs, ton code est toujours écrit sans indentation reflêtant les blocs logiques. Ce n'est pas indispensable mais je voudrais te convaincre que ça permet de mettre au point beaucoup plus vite, surtout au déut.

    Ton code devient :
    <?php
    $laRequete = "SELECT * FROM base_physique WHERE auteur LIKE '%'"; //LIGNE 14
    $req = mysql_query($laRequete);
    
    if( isset( $_POST['auteur'] ) && $_POST['auteur'] != "" )
    	$laRequete .= " AND auteur='" . $_POST['auteur'] . "'";
    
    if( isset($_POST['motstitre']) && $_POST['motstitre'] != "" )
    	$laRequete .= " AND motstitre='" . $_POST['motstitre'] . "'";
    
    if( isset($_POST['année']) && $_POST['année'] != "" )
    	$laRequete .= " AND année='" . $_POST['année'] . "'";
    
    if( isset($_POST['journal']) && $_POST['journal'] !="" )
    	$laRequete .= " AND journal='" . $_POST['journal'] . "'";
    ?>
    
    <p>
    	<table width="1200" border="0" cellspacing="0" cellpadding="0">
    		<tr>
    			<td align="center">Auteur</td>
    			<td align="center">Titre</td>
    			<td align="center">Année</td>
    			<td align="center">Journal</td>
    			<td align="center">Volume</td>
    			<td align="center">Page</td>
    			<td align="center">Motsclé</td>
    			<td align="center">Sujet</td>
    			<td align="center">Pdf</td>
    			<td align="center">References</td>
    		</tr>
    
    <?php
    $req = mysql_query( $laRequete );		///	ligne ajoutée
    while( $donnees = mysql_fetch_array( $req ) )
    	{
    ?>
    		<tr>
    			<td align="center"><?php echo $donnees['auteur']; ?></td>
    			<td align="center"><?php echo $donnees['motstitre']; ?></td>
    			<td align="center"><?php echo $donnees['année']; ?></td>
    			<td align="center"><?php echo $donnees['journal']; ?></td>
    			<td align="center"><?php echo $donnees['volume']; ?></td>
    			<td align="center"><?php echo $donnees['page']; ?></td>
    			<td align="center"><?php echo $donnees['motscle']; ?></td>
    			<td align="center"><?php echo $donnees['sujet']; ?></td>
    			<td align="center"><a href="<?php echo $donnees['pdf']?>">pdf</a></td>
    			<td align="center"><?php echo $donnees['references']; ?></td>
    		</tr>
    	</table>
    </p>
    
    <?php
    	}
    ?>
    
    0
    1. ok ca marche impec merci
      0
  4. juste un petit probléme il me met que le premier résultat trouvé dans le tableau et lers autres en dehors du tableau

    que dois-je changer?
    0
    1. Réfléchis : regarde le code généré? où est le </table> ? comment le mettre au bon endroit ?
      0
      1. oue javais pas vu....
        0
        1. Bonsoir, me revoilà

          <?php
          $laRequete = "SELECT * FROM base_physique WHERE auteur LIKE '%'"; //LIGNE 14
          $req = mysql_query($laRequete);

          if( isset( $_POST['auteur'] ) && $_POST['auteur'] != "" )
          $laRequete .= " AND auteur='" . $_POST['auteur'] . "'";

          if( isset($_POST['motstitre']) && $_POST['motstitre'] != "" )
          $laRequete .= " AND motstitre='" . $_POST['motstitre'] . "'";

          if( isset($_POST['année']) && $_POST['année'] != "" )
          $laRequete .= " AND année='" . $_POST['année'] . "'";

          if( isset($_POST['journal']) && $_POST['journal'] !="" )
          $laRequete .= " AND journal='" . $_POST['journal'] . "'";
          ?>


          si tu fais $req = mysql_query($laRequete); au moment ou tu l'as mis a quoi ça sert de faire le complement de requette derrière ?

          il faut faire:

          $laRequete = "SELECT * FROM base_physique WHERE auteur LIKE '%'"; //LIGNE 14
          
          
          if( isset( $_POST['auteur'] ) && $_POST['auteur'] != "" )
          	$laRequete .= " AND auteur='" . $_POST['auteur'] . "'";
          
          if( isset($_POST['motstitre']) && $_POST['motstitre'] != "" )
          	$laRequete .= " AND motstitre='" . $_POST['motstitre'] . "'";
          
          if( isset($_POST['année']) && $_POST['année'] != "" )
          	$laRequete .= " AND année='" . $_POST['année'] . "'";
          
          if( isset($_POST['journal']) && $_POST['journal'] !="" )
          	$laRequete .= " AND journal='" . $_POST['journal'] . "'";
          
          $req = mysql_query($laRequete);
          ?>
          
          0