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 :

problème dans une boucle


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 24
    Points : 16
    Points
    16
    Par défaut problème dans une boucle
    Bonjour j'ai ceci
    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
    <?php
    include('cnx.php');
    db::connection();
     
    $search=$_POST['cherche'];  
     
    $result = mysql_query("SELECT * FROM post WHERE nom='$search' AND valide=1") or die(mysql_error());
     
    //affichage du résultat si la recherche existe
    if ($result) {echo "valeur existante".'<br />';
    while($res=mysql_fetch_array($result))
    	{
    	echo'<legend>'.$search.'</legend>'.'<br />'.'<br />';
    	echo $res['auteur'].'<br />';
    	echo $res['date'].'<br />';
    	echo $res['valeur'];
    	}
    	echo"<br /><br />";
     echo "<table><tr><td>Apportez votre contribution</td></tr>";
     echo "<form action='ajout.php' method='post'>";
     echo "<tr><td></td><td><input type='text' name='nom' value=".$search.">"."</input></tr></td>";
     echo "<tr><td>Auteur</td><td><input type='text' name='auteur'>"."</input></tr></td>";
     echo "<tr><td>Com</td><td><textarea type='text' name='commentaire'>"."</textarea></tr></td>";
     echo "<tr><td><input type='submit' value='ajouter'></tr></td>";
     echo "</form></table>";
     exit;
     
     
    //formulaire de création du mot inexistant
     
     
     echo "la recherche ".'<b>'.$search.'</b>'." n'existe pas".'<br />'."Voulez vous créer ce mot?";
     echo '<br />'.'<br />';
     echo "<form action='creation.php' method='post'>";
     echo "<table><tr><td>Mot</td><td><input type='text' name='nom' value='$search'>"."</input></td></tr>";
     echo "<tr><td>Auteur</td><td><input type='text' name='auteur'>"."</input></td></tr>";
     echo "<tr><td>Définition</td><td><textarea type='text' name='commentaire'>"."</textarea></td></tr>";
     echo "<tr><td><input type='submit' value='créer' ></td></tr>";
     echo "</form></table>";
    	}
     
     mysql_close();
    ?>
    Le problème c'est quand je fais une recherche qui n'a pas de résultat et qui devrait normalement aboutir au second formulaire ne marche pas! Sa s'arrête au premier en ne m'affichant rien venant de la bdd ( normal puisqu'il n'y a rien qui correspond à la recherche ) avec le premier formulaire.
    D'où vient mon erreur je ne la trouve pas

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    tu ferme ton if avant le formulaire pour l'inexistant et tu met un else
    Stay in Bed .. Save Energy

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    j'avais déjà essayer mais ça ne change rien

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    tu as un exit!!
    Stay in Bed .. Save Energy

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    D'abord une correction : mysql_query ne renvoie false qu'en cas d'échec de le requête (ce que tu traites avec or die(), d'ailleurs) Si la requête fonctionne correctement, if($result) sera valide, qu'il y ait ou non un résultat.

    SI tu veux vérifier si il y a un résultat, mieux vaut utiliser mysql_num_row par exemple
    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
    $result = mysql_query("SELECT * FROM post WHERE nom='$search' AND valide=1") or die(mysql_error());
     
    //affichage du résultat si la recherche existe
    if (mysql_num_rows($result) > 0) {
      echo "valeur existante".'<br />';
      while($res=mysql_fetch_array($result))
    	{
    	echo'<legend>'.$search.'</legend>'.'<br />'.'<br />';
    	echo $res['auteur'].'<br />';
    	echo $res['date'].'<br />';
    	echo $res['valeur'];
    	}
    	echo"<br /><br />";
      echo "<table><tr><td>Apportez votre contribution</td></tr>";
      echo "<form action='ajout.php' method='post'>";
      echo "<tr><td></td><td><input type='text' name='nom' value=".$search.">"."</input></tr></td>";
      echo "<tr><td>Auteur</td><td><input type='text' name='auteur'>"."</input></tr></td>";
      echo "<tr><td>Com</td><td><textarea type='text' name='commentaire'>"."</textarea></tr></td>";
      echo "<tr><td><input type='submit' value='ajouter'></tr></td>";
      echo "</form></table>";
    } else {
     
    //formulaire de création du mot inexistant
     
      echo "la recherche ".'<b>'.$search.'</b>'." n'existe pas".'<br />'."Voulez vous créer ce mot?";
      echo '<br />'.'<br />';
      echo "<form action='creation.php' method='post'>";
      echo "<table><tr><td>Mot</td><td><input type='text' name='nom' value='$search'>"."</input></td></tr>";
      echo "<tr><td>Auteur</td><td><input type='text' name='auteur'>"."</input></td></tr>";
      echo "<tr><td>Définition</td><td><textarea type='text' name='commentaire'>"."</textarea></td></tr>";
      echo "<tr><td><input type='submit' value='créer' ></td></tr>";
      echo "</form></table>";
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    j'avais aussi essayer de mettre le else et d'enlever le exit mais ça change toujours rien...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Celira Voir le message
    D'abord une correction : mysql_query ne renvoie false qu'en cas d'échec de le requête (ce que tu traites avec or die(), d'ailleurs) Si la requête fonctionne correctement, if($result) sera valide, qu'il y ait ou non un résultat.

    SI tu veux vérifier si il y a un résultat, mieux vaut utiliser mysql_num_row par exemple
    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
    $result = mysql_query("SELECT * FROM post WHERE nom='$search' AND valide=1") or die(mysql_error());
     
    //affichage du résultat si la recherche existe
    if (mysql_num_rows($result) > 0) {
      echo "valeur existante".'<br />';
      while($res=mysql_fetch_array($result))
    	{
    	echo'<legend>'.$search.'</legend>'.'<br />'.'<br />';
    	echo $res['auteur'].'<br />';
    	echo $res['date'].'<br />';
    	echo $res['valeur'];
    	}
    	echo"<br /><br />";
      echo "<table><tr><td>Apportez votre contribution</td></tr>";
      echo "<form action='ajout.php' method='post'>";
      echo "<tr><td></td><td><input type='text' name='nom' value=".$search.">"."</input></tr></td>";
      echo "<tr><td>Auteur</td><td><input type='text' name='auteur'>"."</input></tr></td>";
      echo "<tr><td>Com</td><td><textarea type='text' name='commentaire'>"."</textarea></tr></td>";
      echo "<tr><td><input type='submit' value='ajouter'></tr></td>";
      echo "</form></table>";
    } else {
     
    //formulaire de création du mot inexistant
     
      echo "la recherche ".'<b>'.$search.'</b>'." n'existe pas".'<br />'."Voulez vous créer ce mot?";
      echo '<br />'.'<br />';
      echo "<form action='creation.php' method='post'>";
      echo "<table><tr><td>Mot</td><td><input type='text' name='nom' value='$search'>"."</input></td></tr>";
      echo "<tr><td>Auteur</td><td><input type='text' name='auteur'>"."</input></td></tr>";
      echo "<tr><td>Définition</td><td><textarea type='text' name='commentaire'>"."</textarea></td></tr>";
      echo "<tr><td><input type='submit' value='créer' ></td></tr>";
      echo "</form></table>";
    }
    A oui c'est pas faux
    en tout cas merci merci merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème dans une boucle
    Par BenjaminT dans le forum VB.NET
    Réponses: 5
    Dernier message: 06/05/2009, 11h06
  2. [Embedded Function] Problème dans une boucle FOR-END
    Par roilait dans le forum Simulink
    Réponses: 6
    Dernier message: 19/04/2008, 14h55
  3. [BASH] Problème dans une boucle IF
    Par coincoin22 dans le forum Linux
    Réponses: 3
    Dernier message: 16/08/2007, 09h34
  4. [Débutant] Problème dans une boucle Matlab
    Par RaphTIM dans le forum MATLAB
    Réponses: 3
    Dernier message: 05/06/2007, 18h51
  5. Problème dans une boucle
    Par Pitou5464 dans le forum Access
    Réponses: 5
    Dernier message: 11/08/2006, 14h51

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