Condition PHP
Résolu
troubadour2
Messages postés
277
Date d'inscription
Statut
Membre
Dernière intervention
-
troubadour2 Messages postés 277 Date d'inscription Statut Membre Dernière intervention -
troubadour2 Messages postés 277 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà je bloque sur une condition, si quelqu'un peux me donner une explication ?
Merci beaucoup de votre aide.
Mon script affiche dans un tableau les noms des utilisateurs qui jouent de la trompette ça c'est bon.
Mais je souhaiterai lorsqu'on a pas d'utilisateurs qui jouent de cet instrument la ligne TH (Trompette) ne s'affiche pas.
Je ne sais pas si c'est clair pour vous ce n'ai pas facile à expliquer.
Merci vraiment de votre aide.
Voilà je bloque sur une condition, si quelqu'un peux me donner une explication ?
Merci beaucoup de votre aide.
Mon script affiche dans un tableau les noms des utilisateurs qui jouent de la trompette ça c'est bon.
Mais je souhaiterai lorsqu'on a pas d'utilisateurs qui jouent de cet instrument la ligne TH (Trompette) ne s'affiche pas.
Je ne sais pas si c'est clair pour vous ce n'ai pas facile à expliquer.
Merci vraiment de votre aide.
<table style="width:25%; float:left"> <tr> <td class="table-separateur"> <table width="100%" border="2" cellspacing="1" cellpadding="5"> <tr> <td class="table-entete">DEBUTANT</td> <?php echo'<tr>'; echo'<th width="25%" class="table-sous-entete">Trompette</th>'; echo'</tr>'; $resultats = $bdd->query ("SELECT * FROM utilisateur WHERE 'utilisateur'.'membre_utilisateur' = 'Debutant' AND 'utilisateur'.'pupitre_utilisateur' = 'Trompette' ORDER BY nom_utilisateur ASC"); $donnees = $resultats->setFetchMode(PDO::FETCH_OBJ); while ($donnees = $resultats->fetch()) { ?> <td width="25%" class="table-ligne1"><?php echo $donnees->nom_utilisateur . ' ' . $donnees->prenom_utilisateur; ?></td> </tr> <?php } ?> </table> </td> </tr> </table>
A voir également:
- Condition PHP
- Excel cellule couleur si condition texte - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Excel condition ou - Guide
- Condition optimale téléphone ✓ - Forum Mobile
21 réponses
Bonjour,
Je ferais quelques chose comme ça :
<table style="width:25%; float:left">
<tr>
<td class="table-separateur">
<table width="100%" border="2" cellspacing="1" cellpadding="5">
<tr>
<td class="table-entete">DEBUTANT</td>
<?php
$resultats = $bdd->query ("SELECT *
FROM utilisateur
WHERE 'utilisateur'.'membre_utilisateur' = 'Debutant'
AND 'utilisateur'.'pupitre_utilisateur' = 'Trompette'
ORDER BY nom_utilisateur ASC");
$donnees = $resultats->setFetchMode(PDO::FETCH_OBJ);
if (mysql_numrows($resultat)>0) {
echo'<tr>';
echo'<th width="25%" class="table-sous-entete">Trompette</th>';
echo'</tr>';
while ($donnees = $resultats->fetch())
{
?>
<td width="25%" class="table-ligne1"><?php echo $donnees->nom_utilisateur . ' ' . $donnees->prenom_utilisateur; ?></td>
</tr>
<?php
}
}
?>
</table>
</td>
</tr>
</table>
On affiche le TH si la requête rend des lignes pour la requête grace à mysql_numrows
Cordialement
Je ferais quelques chose comme ça :
<table style="width:25%; float:left">
<tr>
<td class="table-separateur">
<table width="100%" border="2" cellspacing="1" cellpadding="5">
<tr>
<td class="table-entete">DEBUTANT</td>
<?php
$resultats = $bdd->query ("SELECT *
FROM utilisateur
WHERE 'utilisateur'.'membre_utilisateur' = 'Debutant'
AND 'utilisateur'.'pupitre_utilisateur' = 'Trompette'
ORDER BY nom_utilisateur ASC");
$donnees = $resultats->setFetchMode(PDO::FETCH_OBJ);
if (mysql_numrows($resultat)>0) {
echo'<tr>';
echo'<th width="25%" class="table-sous-entete">Trompette</th>';
echo'</tr>';
while ($donnees = $resultats->fetch())
{
?>
<td width="25%" class="table-ligne1"><?php echo $donnees->nom_utilisateur . ' ' . $donnees->prenom_utilisateur; ?></td>
</tr>
<?php
}
}
?>
</table>
</td>
</tr>
</table>
On affiche le TH si la requête rend des lignes pour la requête grace à mysql_numrows
Cordialement
Bonjour et merci de votre aide.
Voilà l'erreur que ça met si vous pouvez encore m'aider merci beaucoup.
Fatal error: Call to a member function setFetchMode() on a non-object in E:\wamp\www\cliquedecruet\page\musicien_debutant.php on line 14
Voilà l'erreur que ça met si vous pouvez encore m'aider merci beaucoup.
Fatal error: Call to a member function setFetchMode() on a non-object in E:\wamp\www\cliquedecruet\page\musicien_debutant.php on line 14
Salut,
Essaie d'afficher les erreurs en mettant juste apres ta connection :
Et rajoute un S a $resultat ligne 15 du code de internetwebservice
Pour donner : "if (mysql_numrows($resultats)>0) {"
Essaie d'afficher les erreurs en mettant juste apres ta connection :
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Et rajoute un S a $resultat ligne 15 du code de internetwebservice
Pour donner : "if (mysql_numrows($resultats)>0) {"
Oui effetivement il manque un s à resultats mais le pb n'est pas là.
Avant le code que vous présentez là, avez fait une connection mysql ?
Mysql_connect('localhost',$user,$password);
https://www.php.net/manual/fr/function.mysql-connect.php
Puis un Mysql_select_db($base);
?
Avant le code que vous présentez là, avez fait une connection mysql ?
Mysql_connect('localhost',$user,$password);
https://www.php.net/manual/fr/function.mysql-connect.php
Puis un Mysql_select_db($base);
?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour et merci de votre aide à tous
Pour vous dire j'avais rajouté le s à $resultats.
Ensuite pour ma connexion c'est tout en ordre, je ne l'ai simplement pas mis ici.
Mais ma connexion fonctionne bien.
Si vous pouvez encore m'aider, merci
Fatal error: Call to a member function setFetchMode() on a non-object in E:\wamp\www\cliquedecruet\page\musicien_debutant.php on line 14
Pour vous dire j'avais rajouté le s à $resultats.
Ensuite pour ma connexion c'est tout en ordre, je ne l'ai simplement pas mis ici.
Mais ma connexion fonctionne bien.
Si vous pouvez encore m'aider, merci
Fatal error: Call to a member function setFetchMode() on a non-object in E:\wamp\www\cliquedecruet\page\musicien_debutant.php on line 14
Je vous renvoie mon script et mon erreur
Merci
Merci
<table style="width:25%; float:left"> <tr> <td class="table-separateur"> <table width="100%" border="2" cellspacing="1" cellpadding="5"> <tr> <td class="table-entete">DEBUTANT</td> </tr> <?php $resultats = $bdd->query ("SELECT * FROM utilisateur WHERE 'utilisateur'.'membre_utilisateur' = 'Debutant' AND 'utilisateur'.'pupitre_utilisateur' = 'Trompette' ORDER BY nom_utilisateur ASC"); $donnees = $resultats->setFetchMode(PDO::FETCH_OBJ); if (mysql_num_rows($resultats)>0) { echo'<tr>'; echo'<th width="25%" class="table-sous-entete">Trompette</th>'; echo'</tr>'; while ($donnees = $resultats->fetch()){ ?> <td width="25%" class="table-ligne1"><?php echo $donnees->nom_utilisateur . ' ' . $donnees->prenom_utilisateur; ?></td> </tr> <?php } } ?> </table> </td> </tr> </table>
Il faut remplacer ce code
par
while ($donnees = $resultats->fetch()) { ?> <td width="25%" class="table-ligne1"><?php echo $donnees->nom_utilisateur . ' ' . $donnees->prenom_utilisateur; ?></td> </tr>
par
while ($donnees = $resultats->fetch()) { echo'<tr><td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->nom_utilisateur.'</td></tr>'; }
Bonjour et merci de votre aide
Malheureusement cela n'affiche pas le titre "Trompette" mais par contre ça affiche bien les utilisateurs.
Je vous redonne mon script complet avec vos modifs si vous pouvez encore m'aider.
Je vous remercie beaucoup
Voilà l'erreur
Warning: mysql_num_rows() expects parameter 1 to be resource, object given in E:\wamp\www\cliquedecruet\page\musicien_debutant.php on line 16
Malheureusement cela n'affiche pas le titre "Trompette" mais par contre ça affiche bien les utilisateurs.
Je vous redonne mon script complet avec vos modifs si vous pouvez encore m'aider.
Je vous remercie beaucoup
Voilà l'erreur
Warning: mysql_num_rows() expects parameter 1 to be resource, object given in E:\wamp\www\cliquedecruet\page\musicien_debutant.php on line 16
<table style="width:25%; float:left"> <tr> <td class="table-separateur"> <table width="100%" border="2" cellspacing="1" cellpadding="5"> <tr> <td class="table-entete">DEBUTANT</td> </tr> <?php $resultats = $bdd->query ("SELECT * FROM utilisateur WHERE 'utilisateur'.'membre_utilisateur' = 'Debutant' AND 'utilisateur'.'pupitre_utilisateur' = 'Tromptte' ORDER BY nom_utilisateur ASC"); $donnees = $resultats->setFetchMode(PDO::FETCH_OBJ); if (mysql_num_rows($resultats)>0) { echo'<tr>'; echo'<th width="25%" class="table-sous-entete">Tromptte</th>'; echo'</tr>'; } while ($donnees = $resultats->fetch()) { echo'<tr> <td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->nom_utilisateur.'</td> </tr>'; } ?> </table> </td> </tr> </table>
mettez ça à la place
$booEntete = false;
while ($donnees = $resultats->fetch())
{
if (!$booEntete) {
echo'<tr>';
echo'<th width="25%" class="table-sous-entete">Tromptte</th>';
echo'</tr>';
$booEntete=true;
}
echo'<tr>
<td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->nom_utilisateur.'</td>
</tr>';
}
?>
de ça
if (mysql_num_rows($resultats)>0) {
echo'<tr>';
echo'<th width="25%" class="table-sous-entete">Tromptte</th>';
echo'</tr>';
}
while ($donnees = $resultats->fetch())
{ echo'<tr>
<td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->nom_utilisateur.'</td>
</tr>';
}
?>
$booEntete = false;
while ($donnees = $resultats->fetch())
{
if (!$booEntete) {
echo'<tr>';
echo'<th width="25%" class="table-sous-entete">Tromptte</th>';
echo'</tr>';
$booEntete=true;
}
echo'<tr>
<td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->nom_utilisateur.'</td>
</tr>';
}
?>
de ça
if (mysql_num_rows($resultats)>0) {
echo'<tr>';
echo'<th width="25%" class="table-sous-entete">Tromptte</th>';
echo'</tr>';
}
while ($donnees = $resultats->fetch())
{ echo'<tr>
<td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->nom_utilisateur.'</td>
</tr>';
}
?>
essai d'insérer ce code avant
puis remplacer
En fait le problème provient du mixage entre le code php4 et php5
Tu peux chercher une fonction qui retourne le nombre d'enregistrements d'une requête.
tito
if (mysql_num_rows($resultats)>0) {
$sql = "SELECT COUNT(*) AS nb FROM utilisateur where 'utilisateur'.'membre_utilisateur' = 'Debutant' AND 'utilisateur'.'pupitre_utilisateur' = 'Tromptte' "; $result = $bdd->query($sql); $nb = $columns['nb'];
puis remplacer
<code>if (mysql_num_rows($resultats)>0) {</code> par
if($nb>0){
En fait le problème provient du mixage entre le code php4 et php5
Tu peux chercher une fonction qui retourne le nombre d'enregistrements d'une requête.
tito
Merci de votre aide mais malheureusement je suis toujours en train de me prendre la tête alors si vous avez de nouveau le temps de m'aider?
Merci beaucoup
Ma connexion à ma BDD est en PHP5, j'ai essayé votre script mais l'erreur est...
Notice: Undefined variable: columns in E:\wamp\www\cliquedecruet\page\musicien_debutant.php on line 15
Merci beaucoup
Ma connexion à ma BDD est en PHP5, j'ai essayé votre script mais l'erreur est...
Notice: Undefined variable: columns in E:\wamp\www\cliquedecruet\page\musicien_debutant.php on line 15
<?php $sql = "SELECT COUNT(*) AS nb FROM utilisateur where 'utilisateur'.'membre_utilisateur' = 'Debutant' AND 'utilisateur'.'pupitre_utilisateur' = 'Tromptte' "; $result = $bdd->query($sql); $nb = $columns['nb']; if($nb>0){ echo'<tr>'; echo'<th width="25%" class="table-sous-entete">Tambour</th>'; echo'</tr>'; } while ($donnees = $resultats->fetch()){ echo'<tr>'; echo'<td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->nom_utilisateur.'</td>'; echo'</tr>'; } ?>
donc j'ai fait comme vous me l'avez dit
mais j'ai toujour une erreur
Fatal error: Call to a member function fetch() on a non-object in E:\wamp\www\cliquedecruet\page\musicien_debutant.php on line 14
mais j'ai toujour une erreur
Fatal error: Call to a member function fetch() on a non-object in E:\wamp\www\cliquedecruet\page\musicien_debutant.php on line 14
<?php $sql = "SELECT COUNT(*) AS nb FROM utilisateur where 'utilisateur'.'membre_utilisateur' = 'Debutant' AND 'utilisateur'.'pupitre_utilisateur' = 'Tromptte' "; $result = $bdd->query($sql); $columns = $result->fetch(); $nb = $columns['nb']; if($nb>0){ echo'<tr>'; echo'<th width="25%" class="table-sous-entete">Tambour</th>'; echo'</tr>'; } while ($donnees = $resultats->fetch()){ echo'<tr>'; echo'<td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->nom_utilisateur.'</td>'; echo'</tr>'; } ?>
essais de modifier la requête
$sql = "SELECT COUNT(*) AS nb FROM utilisateur where utilisateur.membre_utilisateur = 'Debutant' AND utilisateur.pupitre_utilisateur = 'Tromptte' ";
Ca commence à prendre forme il n'y a déjà plus de message d'erreur et le titre "trompette" ne s'affiche pas lorsqu'il n'y a pas d'utilisateur associé à cet instrument.
Mais par contre les noms et prénom des utilisateurs ne s'affiche pas ça proviens surement de la boucle while?
Merci encore de votre bonté et de votre temps passé à mon problème.
Mais par contre les noms et prénom des utilisateurs ne s'affiche pas ça proviens surement de la boucle while?
Merci encore de votre bonté et de votre temps passé à mon problème.
pour les noms je sais pas trop mais pour les prénoms
Il faut modifier
Il faut modifier
echo'<td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->nom_utilisateur.'</td>';par
echo'<td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->prenom_utilisateur.'</td>';
Bonjour revoilà le script complet pour vvoir si tu peux me trouver la solution pour afficher les données il n'y a plus que ça.
Sinon le reste c'est nickel.
Très sincérement merci
<?php
$sql = "SELECT COUNT(*) AS nb FROM utilisateur where utilisateur.membre_utilisateur = 'Debutant'
AND utilisateur.pupitre_utilisateur = 'Tambour' ";
$result = $bdd->query($sql);
$columns = $result->fetch();
$nb = $columns['nb'];
if($nb>0){
echo'<tr>';
echo'<th width="25%" class="table-sous-entete">Tambour</th>';
echo'</tr>';
}
while ($donnees = $resultats->fetch()){
echo'<tr>';
echo'<td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->prenom_utilisateur.'</td>';
echo'</tr>';
}
?>
Sinon le reste c'est nickel.
Très sincérement merci
<?php
$sql = "SELECT COUNT(*) AS nb FROM utilisateur where utilisateur.membre_utilisateur = 'Debutant'
AND utilisateur.pupitre_utilisateur = 'Tambour' ";
$result = $bdd->query($sql);
$columns = $result->fetch();
$nb = $columns['nb'];
if($nb>0){
echo'<tr>';
echo'<th width="25%" class="table-sous-entete">Tambour</th>';
echo'</tr>';
}
while ($donnees = $resultats->fetch()){
echo'<tr>';
echo'<td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->prenom_utilisateur.'</td>';
echo'</tr>';
}
?>
<?php $sql = "SELECT COUNT(*) AS nb FROM utilisateur where utilisateur.membre_utilisateur = 'Debutant' AND utilisateur.pupitre_utilisateur = 'Tambour' "; $result = $bdd->query($sql); $columns = $result->fetch(); $nb = $columns['nb']; echo'<table><tbody>'; if($nb>0){ echo'<tr>'; echo'<th width="25%" class="table-sous-entete">Tambour</th>'; echo'</tr>'; } while ($donnees = $resultats->fetch()){ echo'<tr>'; echo'<td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->prenom_utilisateur.'</td>'; echo'</tr>'; } echo'</tbody></table>'; ?>
Sinon t'es sur que la table utilisateur n'est pas vide?
En fait dans ma BDD table utilisateur il y a bien 2 membres qui correspond à l'instrument "tambour"
Et dans mon tableau il ne sont pas affiché.
Et dans mon tableau il ne sont pas affiché.
Voici le nouveau code
Sinon tu veux pas essayer avec un code non orienté objet?
$sql= "SELECT COUNT(*) AS nb FROM utilisateur where utilisateur.membre_utilisateur = 'Debutant' AND utilisateur.pupitre_utilisateur = 'Tambour' "; $result = $bdd->query($sql); $columns = $result->fetch(); $nb = $columns['nb']; if($nb>0){ echo'<tr>'; echo'<th width="25%" class="table-sous-entete">Tambour</th>'; echo'</tr>'; } while ($donnees = $resultats->fetch()){ echo'<tr>'; echo'<td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->prenom_utilisateur.'</td>'; echo'</tr>'; } echo'</table></td></tr></table>'; ?>
Sinon tu veux pas essayer avec un code non orienté objet?
J suis désolé toujours pareil rien ne s'affiche j'ai bien défini $bdd dans mon fichier de connexion.
//On cré l'objet $bdd à l'aide de la commande new suivi du nom de la classe
$bdd = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bdd, $PARAM_utilisateur, $PARAM_mot_passe);
//On cré l'objet $bdd à l'aide de la commande new suivi du nom de la classe
$bdd = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bdd, $PARAM_utilisateur, $PARAM_mot_passe);
Voici le nouveau code
$sql= "SELECT COUNT(*) AS nb FROM utilisateur where utilisateur.membre_utilisateur = 'Debutant'
AND utilisateur.pupitre_utilisateur = 'Tambour' ";
$result = $bdd->query($sql);
$columns = $result->fetch();
$nb = $columns['nb'];
if($nb>0){
echo'<tr>';
echo'<th width="25%" class="table-sous-entete">Tambour</th>';
echo'</tr>';
}
while ($donnees = $resultats->fetch()){
echo'<tr>';
echo'<td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->prenom_utilisateur.'</td>';
echo'</tr>';
}
echo'</table></td></tr></table>';
?>
Sinon tu veux pas essayer avec un code non orienté objet?
$sql= "SELECT COUNT(*) AS nb FROM utilisateur where utilisateur.membre_utilisateur = 'Debutant'
AND utilisateur.pupitre_utilisateur = 'Tambour' ";
$result = $bdd->query($sql);
$columns = $result->fetch();
$nb = $columns['nb'];
if($nb>0){
echo'<tr>';
echo'<th width="25%" class="table-sous-entete">Tambour</th>';
echo'</tr>';
}
while ($donnees = $resultats->fetch()){
echo'<tr>';
echo'<td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->prenom_utilisateur.'</td>';
echo'</tr>';
}
echo'</table></td></tr></table>';
?>
Sinon tu veux pas essayer avec un code non orienté objet?
Voilà en fait avec se script ça affiche bien les utilisateurs mais ça affiche aussi le titre dans ce cas "tambour" même si il n'y a pas d'utilisateur qui correspond à "Tambour".
Contrairement à votre script c'est le contraire.
C'est très complexe mais j'aimerai tant pouvoir y arriver.
Contrairement à votre script c'est le contraire.
C'est très complexe mais j'aimerai tant pouvoir y arriver.
<table style="width:25%; float:left"> <tr> <td class="table-separateur"> <table width="100%" border="2" cellspacing="1" cellpadding="5"> <tr> <td class="table-entete">DEBUTANT</td> </tr> <tr> <th width="25%" class="table-sous-entete">Tambour</th> </tr> <?php $resultats = $bdd->query("SELECT * FROM utilisateur WHERE 'utilisateur'.'membre_utilisateur' = 'Debutant' AND 'utilisateur'.'pupitre_utilisateur' = 'Tambour' ORDER BY nom_utilisateur ASC"); $donnees = $resultats->setFetchMode(PDO::FETCH_OBJ); while ($donnees = $resultats->fetch()) { ?> <td width="25%" class="table-ligne1"><?php echo $donnees->nom_utilisateur . ' ' . $donnees->prenom_utilisateur; ?></td> </tr> <?php } ?> </table> </td> </tr> </table>
<?php $sql = "SELECT COUNT(*) AS nb FROM utilisateur where utilisateur.membre_utilisateur = 'Debutant' AND utilisateur.pupitre_utilisateur = 'Tambour' "; $result = $bdd->query($sql); $columns = $result->fetch(); $nb = $columns['nb']; $resultats = $bdd->query("SELECT * FROM utilisateur WHERE 'utilisateur'.'membre_utilisateur' = 'Debutant' AND 'utilisateur'.'pupitre_utilisateur' = 'Tambour' ORDER BY nom_utilisateur ASC"); $donnees = $resultats->setFetchMode(PDO::FETCH_OBJ); if($nb>0){ echo'<tr>'; echo'<th width="25%" class="table-sous-entete">Tambour</th>'; echo'</tr>'; } while ($donnees = $resultats->fetch()){ echo'<tr>'; echo'<td width="25%" class="table-ligne1">'.$donnees->nom_utilisateur.' '.$donnees->prenom_utilisateur.'</td>'; echo'</tr>'; } echo'</table></td></tr></table>'; ?>
ça doit marcher mnt.
Merci de changer le problème en résolu quand vous trouvez une solution