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??
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
-
for (i=0 ; i<3 ; i++) { } for (i=0 ; i<3 ; i++) { }
voila normalement sa marche comme sa-
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>
-
-
quelqu'un a une idée???
-
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(... -
@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??? -
@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 ? -
@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 -
@Alain_42je vais essayer ceque tu m'as dit alain
merci
-
-
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 } ?> -
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? -
Réfléchis : regarde le code généré? où est le </table> ? comment le mettre au bon endroit ?
-
oue javais pas vu....
-
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); ?>
-
-
exact j'ai changé ca
j'ai un autre probléme expliquer ici http://www.commentcamarche.net/forum/affich 5729717 probele avec l id
quelqu'un a une idée?