Probleme avec for

Résolu
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   -  
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
comment faire 2 for daffilée?

exemple

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

{....


quelle est la syntaxe??
A voir également:

7 réponses

GhostRider74 Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   8
 

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


voila normalement sa marche comme sa
0
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   3
 
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
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   3
 
quelqu'un a une idée???
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   3 > Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention  
 
tu 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
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894 > ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention  
 
J'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
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894 > ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention  
 
Un 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
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   3 > Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention  
 
je vais essayer ceque tu m'as dit alain
merci
0
croy Messages postés 453 Date d'inscription   Statut Membre Dernière intervention   114
 
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
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   3
 
ok ca marche impec merci
0
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   3
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
croy Messages postés 453 Date d'inscription   Statut Membre Dernière intervention   114
 
Réfléchis : regarde le code généré? où est le </table> ? comment le mettre au bon endroit ?
0
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   3
 
oue javais pas vu....
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   3
 
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?
0