IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

condition if /empty /else


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Par défaut condition if /empty /else
    Bonjour,

    Je me décide à poster car je tourne en rond...
    Le problème est simple : une condition si un retour de requête est vide petit message sinon, lister et afficher les retours.

    Voilà ce qui en est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <?php
    //connection-----------------
    	mysql_connect("localhost","david","mornay");
    	mysql_select_db("cinemofil");
    ?>
     
    <?php
     
    //Alphabet--------------------
    	$alphabet = array('0-9');
    	for($i="A"; $i!='AA'; $i++){
    	$alphabet[ ] = $i;
    	}
    	?>
    	<div id="contenu">
    	<?php
    	if(isset($_GET['tri']) AND in_array($_GET['tri'], $alphabet))
    	{
    	$tri = $_GET['tri'];
    	$tri =='0-9' ? $where = "REGEXP '^([0-9]+)'" : $where = "LIKE' $tri%'";
    	$req = ("SELECT id, titre, genre FROM film WHERE titre LIKE '$tri%'");
    	$result=mysql_query($req);
    	$NbCol=3;
     
    	$NbToto=mysql_num_rows($result);
     
    	$NbLigne=1+(int)($NbToto/$NbCol);
    	$Lig=0;
     
    	while($dat = mysql_fetch_array($result))
    	{
    	echo '<a href="filmfiche.php?id='.$dat['id'].'">'. $dat['titre'].'</a>';
    	echo $dat['genre'];
    	echo '<br />';
    	$Lig=$Lig+1;
    	if($Lig==$NbLigne){
    	echo"<td>";$Lig=0;}
    	}
    	}
    	if (!empty($req)){
    	echo"pas de résultat";
    	}
    	else{
    	foreach($alphabet as $list)
    	{
    	echo '<a href="listing_films.php?tri='.$list.'"> '. $list.'</a>';
    	}
     
    	}
    	echo"</td></tr></table>";
     
    	?>
    En sachant que la condition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!empty($req)){
    	echo"pas de résultat";
    	}
    fonctionne, mais me met le message à la fin de la liste. Si j'enlève le ! ce qui serait normal, seul le message aparaît, et plus d'alphabet de recherche...

    j'essais dans tous les sens, rien n'y fait.

    Merci d'avance de m'orienter vers une solution.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    $req est la chaine de caractère de ta requête ; ce que tu veux tester c'est le nombre de retours $NbToto.

    Et indente ton code par pitié.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    $req correspond à une chaine : ta requête. Je vois mal comment elle pourrait être empty()...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 34
    Par défaut
    Bonjour,

    Penchons-nous sur la valeur de $req que tu testes plus bas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = ("SELECT id, titre, genre FROM film WHERE titre LIKE '$tri%'");
    En gros, $req est une chaîne de caractère non vide que tu crées. Ne cherches-tu pas plutôt à vérifier le contenu du résulta de ta requête ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result=mysql_query($req);
    Si c'est bien ta volonté, je vois que tu as une variable instanciée plus bas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $NbToto=mysql_num_rows($result);
    Si $NbToto est supérieure à zéro (mysql_num_rows récupère le nombre d'enregistrements dans ta variable), alors tu as des résultats. Sinon, tu n'as rien . Il te suffirait donc de remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!empty($req)){
    	echo"pas de résultat";
    }
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($NbToto == 0){
    	echo"pas de résultat";
    }
    Ai-je saisi ton problème ? la solution proposée fonctionne-t-elle et respecte-t-elle ton idée de départ ?


    Cordialement

    Ps : les collègues ont été plus rapides
    PS2 : En effet, si tu pouvais indenter, ce serait plus pratique pour t'aider. de même, pour la relecture de code, il serait envisageable de choisir des noms de variables un peu plus concrets que NbToto ^^

  5. #5
    Membre averti
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Par défaut
    Merci a vous

    CR3a Hal0 lorsque je met ta condition j' ai une erreur "parse error, syntax error, unexpected $end in" sur la ligne de la condition.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <?php
     
    //Alphabet--------------------
    $alphabet = array('0-9');
    		for($i="A"; $i!='AA'; $i++){
    			$alphabet[ ] = $i;
    }
    ?>
    <div id="contenu">
    <?php
     
    	if(isset($_GET['tri']) AND in_array($_GET['tri'], $alphabet))
    	{
    		$tri = $_GET['tri'];
    		$tri =='0-9' ? $where = "REGEXP '^([0-9]+)'" : $where = "LIKE' $tri%'";
    		$req = ("SELECT id, titre, genre FROM film WHERE titre LIKE '$tri%'");
    		$result=mysql_query($req);
     
    $NbCol=3;
     
    $NbResult=mysql_num_rows($result);
     
    $NbLigne=1+(int)($NbResult/$NbCol);
    $Lig=0;
     
    	while($dat = mysql_fetch_array($result))
    	{
    		echo '<a href="filmfiche.php?id='.$dat['id'].'">'. $dat['titre'].'</a>';
    		echo $dat['genre'];
    		echo '<br />';
    		$Lig=$Lig+1;
     
    	if($Lig==$NbLigne)
    	{
    		echo"<td>";$Lig=0;
    	}
     
     
    	if ($NbResult==0)
    	{
    		echo"pas de résultat";
    	}
    	else{
    		foreach($alphabet as $list)
    		{
    			echo '<a href="listing_films.php?tri='.$list.'"> '. $list.'</a>';
    		}
    	}
    echo"</td></tr></table>";
    	?>
    </div>
    </div>
    </body>
    </html>
    pourtant je ne remarque rien d'anormal ??

  6. #6
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(isset($_GET['tri']) AND in_array($_GET['tri'], $alphabet))
    	{
    ET
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while($dat = mysql_fetch_array($result))
    	{

    Ne sont pas fermés

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 34
    Par défaut
    Citation Envoyé par david_gal Voir le message
    Merci a vous

    CR3a Hal0 lorsque je met ta condition
    Ah ce n'est pas lorsque tu mets la condition que j'ai indiquée, la preuve j'ai bien un nombre pair de parenthèses dans le mini-code

  8. #8
    Membre averti
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Par défaut
    j'ai rajouté une accolade, plus d'erreur de end, par contre, plus non plus d'alphabet donc plus de sélection... J'y perd mon latin...

Discussions similaires

  1. condition if et else
    Par Tee shot dans le forum Langage
    Réponses: 8
    Dernier message: 07/09/2010, 13h24
  2. condition if then else en jsf
    Par tongo dans le forum JSF
    Réponses: 2
    Dernier message: 06/08/2009, 16h57
  3. condition if then else dans un select
    Par bringer dans le forum SQLite
    Réponses: 5
    Dernier message: 11/07/2009, 00h25
  4. [Conception] condition et empty
    Par carelha dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 04/12/2006, 10h29
  5. Probleme Condition IF et ELSE
    Par arround dans le forum Langage
    Réponses: 2
    Dernier message: 23/10/2005, 01h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo