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 :

[Tableaux] Comment puis crééer ce tableau dans un WHILE?


Sujet :

Langage PHP

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut [Tableaux] Comment puis crééer ce tableau dans un WHILE?
    et pourquoi je n'arrive pas a créer un tableau dans le code que vous m'avez donné?
    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
    			while($restaurants=mysql_fetch_array($resultat2)) 
    			{ 
    			echo '<table width="100%"  border="1" cellspacing="0" cellpadding="0">';
      			echo '<tr>';
    			echo     '<td>$restauranrs[1];</td>';
    			echo '<td>$restaurants[2]</td>';
    			echo '</tr>';
      			echo '<tr>';
    			echo 	'<td>$restaurants[3]</td>';
    			echo 	'<td>$restauranr[4]</td>';
    			echo '</tr>';
    			echo '</table>';
     
    				echo "$restaurants[1]";
       //Affichage des résultats 
       			};

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Qu'est ce qui te fait dire que tu n'y arrives pas ?

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Rien ne s'affiche. En effet,je n'ai pas de message d'erreur mais le ne tableau ne se voit pas

    Dans le 2eme cas, il apparait

    En plus de cela, il devrait apparaitre autant de fois que la boucle while tourne? non? (s'il apparaissait... :o))

  4. #4
    Membre averti

    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    0
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 0
    Points : 314
    Points
    314
    Par défaut
    si ta pas de tableau, c´est parce que while($restaurants=mysql_fetch_array($resultat2)) , ne se verifie pas.
    c´est bien $resultat2, que ta dans ton code?
    Autre chose, t´es sur que tu ouvre et ferme ta table, a l´endroit correcte?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    je ne sais pas si c'est la raison, mais je crois que les variables indiqués directement entre guillemets ne sont interprétés correctement que s'il y a des doubles guillemets. il me semble que dans le cas de guillemets simples, il faut faire une concaténation. suis pas sûr.

    par ailleurs, es-tu certain que $restaurants a plus d'un indice ?

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    bonne piste jotaeme5450...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $nb = mysql_num_rows($resultat2);
    if ($nb < 1) {
       echo 'Pas de résultats !';
    } else {
       echo $nb, ' résultats ont été trouvés :';
       while($resto = .....) {
          ...
       }
    }

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Oui le tableau s'ouvre et se ferme au bon endroit

    voici le cpde presqu'au complte
    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
     
    ...
    <td>
    		<?php
     
    			if(isset($_POST['sendetablissement'])) $geturl=$_POST['sendetablissement'];
    			else $geturl="";
    			// connexion à la base
    			$connect2 = mysql_connect('localhost','root', '')  or die('Erreur de connexion '.mysql_error());
    			// sélection de la base  
    		    mysql_select_db('myresto',$connect2)  or die('Erreur de selection '.mysql_error()); 
    			// on écrit la requête sql     		
    			$query2 = "SELECT * FROM tb_resto WHERE ".$champs[3]." LIKE '".$result['tb_etablissement']."'"; 
    			$resultat2=mysql_query($query2) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    			while($restaurants=mysql_fetch_array($resultat2)) 
    			{ 
    			echo '"<table width="100%"  border="1" cellspacing="0" cellpadding="0">"';
      			echo '"<tr>"';
    			echo     '"<td></td>"';
    			echo '"<td></td>"';
    			echo '"</tr>"';
      			echo '"<tr>"';
    			echo 	'"<td>&nbsp;</td>"';
    			echo 	'"<td>&nbsp;</td>"';
    			echo '"</tr>"';
    			echo '"</table>"';
     
    #				echo var_dump($row);
       //Affichage des résultats 
       			};
    			mysql_close($connect2);  // on ferme la connexion
    		?>
    </td>

  8. #8
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    bien , mais ce bout de code ne permet pas grand chose a part voir qu'il est contruit n'importe comment...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query2 = "SELECT * FROM tb_resto WHERE ".$champs[3]." LIKE '".$result['tb_etablissement']."'";
    $champs c'est quoi ? $result c'est quoi ?

    je te propose d'afficher ta requete
    pour voir ce qu'elle contient, aprés tu fais un copier/coller de l'affichage dans phpMyAdmin afin de vérifier qu'elle retourne bien quelque chose...

  9. #9
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    voila mon code corrige qui maintenant controle le WHILE
    mais il tombe toujours dans "Pas de resultat". Bon ben la j'ai la repeonse pour rien ne s'affiche.

    Mais pourtant, j'ai modifier ceci à [if ($nb < 1) ] à if [($nb < 0)] et la plus rien s'affiche. En fait la condition devrait etre respecté pour autant qu'il ny aie rien dans $nb? C'est bien ca. Dans mon code il y a quelque chose puis que l'information est bien recoltée dans ma DB puis qu'on arrive affiché un resulat simplement avec echo &restauranrs[1];
    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
     
    		<?php
     
    			$champs=array("id","tb_e_mail","tb_pw","tb_etablissement","tb_responsable","tb_adresse","tb_cp","tb_ville","tb_telephone","tb_fax","tb_date","tb_w1_lundi","tb_w1_mardi","tb_w1_mercredi","tb_w1_jeudi","tb_w1_vendredi","tb_w1_samedi","tb_w1_dimanche","tb_w2_lundi","tb_w2_mardi","tb_w2_mercredi","tb_w2_jeudi","tb_w2_vendredi","tb_w2_samedi","tb_w2_dimanche","tb_type","tb_descriptif");
     
    			if(isset($_POST['sendetablissement'])) $geturl=$_POST['sendetablissement'];
    			else $geturl="";
    			// connexion à la base
    			$connect2 = mysql_connect('localhost','root', '')  or die('Erreur de connexion '.mysql_error());
    			// sélection de la base  
    		    mysql_select_db('myresto',$connect2)  or die('Erreur de selection '.mysql_error()); 
    			// on écrit la requête sql     		
    			$query2 = "SELECT * FROM tb_resto WHERE ".$champs[3]." LIKE 'restaurant'"; 
    			$resultat2=mysql_query($query2) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    			$nb = mysql_num_rows($resultat2); 
    			if ($nb < 1) { 
       				echo 'Pas de résultats !'; 
    			}else{
    			while($restaurants=mysql_fetch_array($resultat2)) 
    			{ 
    			echo '"<table width="100%"  border="1" cellspacing="0" cellpadding="0">"';
      			echo '"<tr>"';
    			echo     '"<td></td>"';
    			echo '"<td></td>"';
    			echo '"</tr>"';
      			echo '"<tr>"';
    			echo 	'"<td>&nbsp;</td>"';
    			echo 	'"<td>&nbsp;</td>"';
    			echo '"</tr>"';
    			echo '"</table>"';
     
       			}
    			}
    			mysql_close($connect2);  // on ferme la connexion
    		?>

  10. #10
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    tu as fait ce que je t'ai demandé ?
    a priori, ta requete ne retourne rien, c'est la qu'il faut regarder...

    a part ça, mysql_num_rows retourne 0 si pas de résultat sinon le nombre d'enregistrements trouvés
    donc le test : if($nb < 1) est bon...

  11. #11
    Membre averti

    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    0
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 0
    Points : 314
    Points
    314
    Par défaut
    dapres ca, ta query ne renvoit pas de resultat.
    quand je demandais si tu ouvrais e fermais ta table au bonne endroit, je demandais si tu veut une table pour chaque enregistrement que tu va avoir, ou une table pour tous tes enregistrements. si tu ouvre ta table dans le while, ( ton cas), pour chaque enregistrement, tu auras une nouvelle table.

    apres de $nb = mysql_num_rows($resultat2); fait un echo de $query2, pour voire si ta query correspond bien a ce que tu veut.

  12. #12
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Oui merci ska,

    y a bien en proble avec ma requete, J'arrive afficher la tableau maintenant car j'ai mis une valeur fixe apre LIKE. et ca marche beaucoup mieu.x Sauf que je vais avoir besoin de recupérer un valeur d'une variable "sendetablissement" envoyé par le bwroser (URL). Donc remplacer le mot "restaurant" apres LIKE par un petit code qui recupere la variable dans l'URL

    En plus ca marchait avec
    if($nb < 0) mais j'ai remis a 1 comme tu viens de me l'expliquer
    et ca marche toujours

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    			$query2 = "SELECT * FROM tb_resto WHERE ".$champs[3]." LIKE 'restaurant'";

  13. #13
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Ben voila, j'aun resulta super possitif. (quel prise de tete :o)).

    J'ai rassemblé un peu toute vos prpsitons qui m'ont été indispensable, et j'arrive imprimer les valeurs d'un camps dans mon
    [code]
    <table><tr><td>valeur que je souhaite afficher d'un champs</td></tr></table>
    [code]
    mais ceci dans une 1 zable a 4 <td> (pour le moment). Je prevoir une 30 de <td>

    Mon dernier probleme c'est comment remplacer la valeur fix 'restaurant'
    &#91;code&#93;$query2 = "SELECT * FROM tb_resto WHERE ".$champs[3]." LIKE 'restaurant'"; &#91;/code&#93;
    par une variable qui stoke la valeur de "sendetablissementrecupéré" recupérée dans cette URL
    &#91;code&#93;index.php?sendetablissement=restaurant&#91;/code&#93;

    Merci a tous pour ce dernier (je l'espere :o)) coups de pouce

  14. #14
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    t'y étais presque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(isset($_POST['sendetablissement'])) $geturl=$_POST['sendetablissement'];
             else $geturl="";
    tu mets à la place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(isset($_GET['sendetablissement'])) $geturl=$_GET['sendetablissement'];
             else $geturl=""; 
    // par contre je te conseille de mettre une valeur par défaut a la place d'une chaine vide, sinon la requete va échouer
    et aprés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query2 = "SELECT * FROM tb_resto WHERE ".$champs[3]." LIKE '$geturl'";
    as-tu regardé quelque tutos PHP ? si non je te le conseilles, y'en a des trés bon ici :
    http://php.developpez.com/cours/
    ;-)

  15. #15
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    CA MARCHE HOOOOOUUUUUUU. Merci ska, merci Mr N (--> Dr N), merci joteme[numero] et aux autres aussi.

    Bon c'est pas finit je vais encore encontré des problème, mais la c'est dja génial.

    Merci merci merci

    P.

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

Discussions similaires

  1. Comment créer un tableau dans une boucle foreach ?
    Par razily dans le forum Langage
    Réponses: 4
    Dernier message: 30/04/2012, 11h25
  2. Réponses: 4
    Dernier message: 22/05/2008, 13h58
  3. comment créer un tableau dans un formulaire ???
    Par trotters213 dans le forum IHM
    Réponses: 21
    Dernier message: 03/07/2007, 08h31
  4. Réponses: 3
    Dernier message: 27/11/2006, 14h16
  5. Créer un tableau dans une CDialog
    Par Sachiel31 dans le forum MFC
    Réponses: 5
    Dernier message: 29/08/2006, 16h55

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