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] Problèmes avec les " et '


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 38
    Points
    38
    Par défaut [Tableaux] Problèmes avec les " et '
    Bonjour tous le monde,
    Voila j'aimerai intégrer un script sur mon site..mais j'ai du mal à le faire fonctionner je dois surement faire une erreur...

    Voila j'aimerai afficher sur une page les 15 derniers "news" du site pour cela je fais un order DESC mais j'ai un problème pour faire afficher mes données dans des tableaux..voici mon script :

    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
     
    <?
    include "connect_db.php";
     
    $sql = 'SELECT film,image,numero FROM bdd ORDER BY timestamp DESC limit 0,15';
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    while($data = mysql_fetch_assoc($req)) {
     
    echo ('<TR><TD align=center><A HREF="index.php?page='.$numero.'"><IMG SRC="'.$data['image'].'" width=120 height=160><br>"'.$data['film'].'"<br></A></TD>
    <TD align=center><A HREF="index.php?page='.$numero.'"><IMG SRC="'.$data['image'].'" width=120 height=160><br>"'.$data['film'].'"<br></A></TD>
    <TD align=center><A HREF="index.php?page='.$numero.'"><IMG SRC="'.$data['image'].'" width=120 height=160><br>"'.$data['film'].'"<br></A></TD>
    </TR>');
    }
    mysql_close();	  
    ?>
    L'echo devrait faire apparaître 3 cellules par ligne et ce jusqu'au 15 désiré nan ? donc 5 lignes..du moins c'est ce que j'aimerais faire :/

    L'erreur qui apparait actuellement c'est :
    "Parse error: parse error, unexpected T_ECHO in
    /homepages/24/d146282448/htdocs/aw_2/catalogue.php on line 20"
    Je pense qu'il y a une erreur au niveau des ' et " ...je m'y perd un peu..

    Si vous pourriez m'aider et me dire mes erreurs, je vous en serai grandement reconnaissant..

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    Ton code à l'air tout à fait correct à part peut être mettre $data['numero'] à la place de $numero.

    Le echo va t'afficher 3x la même chose dans les cellules normalement.
    Il ne doit passer à l'enregistrement suivant qu'au prochain tour dans la boucle.

    C'est quoi ta ligne 20 ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Bizarre bizarre...
    Ca a l'air de fonctionner..j'ai plus d'erreur..

    Néanmoins comme tu la dit les 3 cellules sont identiques..aurai tu une idée de ce qu'il faut changer ca pour faire apparaitre 3 cellules differentes par ligne ?

  4. #4
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    Tu récupère tout tes enregistrements dans un tableau et tu l'affiche à l'aide d'une boucle après.

    Donc tu remplace ton echo par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $result[] = array(
        'num' => $data['num'],
        'image' => $data['image'],
        ...
    );

  5. #5
    Membre averti Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Points : 416
    Points
    416
    Par défaut
    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
     
    <?
    include "connect_db.php";
     
    $sql = 'SELECT film,image,numero FROM bdd ORDER BY timestamp DESC limit 0,15';
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    $nb = mysql_num_row($req); // cb de résultat on a ( utile si on en a moins de 15 )
    $compteur = 0;
    while($data = mysql_fetch_assoc($req)) {
    if ( $compteur == 0 )  echo '<tr>'; // cas particulier du premier <tr>
    elseif ( $compteur%3 == 0  ) echo '</tr><tr>';
    echo ('<TD align=center><A HREF="index.php?page='.$numero.'"><IMG SRC="'.$data['image'].'" width=120 height=160><br>"'.$data['film'].'"<br></A></TD>');
    if ( $nb == $compteur+1   ) echo '</tr>'; // cas particulier du dernier </tr>
    $compteur++
    }
    mysql_close();	  
    ?>
    Avec des modulo, ca t'affichera 3 cases par lignes
    Smiley de Plomb 2009
    Anciennement FrancoisIT

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Merci à vous deux pour vos réponses...
    Ne maitrisant pas du tout les array, j'ai essayé ce que francois ma proposé mais une erreur apparait :
    "Parse error: parse error, unexpected '}' in /homepages/24/d146282448/htdocs/aw_2/catalogue.php on line 45"
    Ce qui correspond au } après le "$compteur++"
    Savez vous pourquoi car moi je sèche...

    Je me suis appuyé d'un autre script pour créer automatiquement les autres pages lorsque le nombre de donées dépasse kes 15 pour eviter de le faire manuellement, voici le script :

    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
     
    <TABLE border=2 cellpadding=10>
    <?php
     
    $nombrefilm = 20; 
     
    // On récupère le nombre total de film ds la bdd
    $retour = mysql_query('SELECT COUNT(*) AS film FROM bdd');
    $donnees = mysql_fetch_array($retour);
    $total = $donnees['film'];
     
    // On calcule le nombre de pages à créer
    $nombreDePages  = ceil($total / $nombrefilm);
     
     
    if (isset($_GET['page_cg']))
    {
        $page = $_GET['page_cg']; // On récupère le numéro de la page indiqué dans l'adresse 
    }
    else // La variable n'existe pas, c'est la première fois qu'on charge la page
    {
        $page_cg = 1; // On se met sur la page 1 (par défaut)
    }
    $premierMessageAafficher = ($page_cg - 1) * $nombrefilm;
     
    $reponse = mysql_query('SELECT * FROM bdd ORDER BY timestamp DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombrefilm) or die(mysql_error());
     
    while ($donnees = mysql_fetch_array($reponse) )
    {
    if ( $compteur == 0 )  echo '<tr>'; // cas particulier du premier <tr>
    elseif ( $compteur%3 == 0  ) echo '</tr><tr>';
    echo ('<TD align=center><A HREF="index.php?page='.$numero.'"><IMG SRC="'.$data['image'].'" width=120 height=160><br>"'.$data['film'].'"<br></A></TD>');
    if ( $nb == $compteur+1   ) echo '</tr>'; // cas particulier du dernier </tr>
    $compteur++
    }
    // Puis on fait une boucle pour écrire les liens vers chacune des pages
    echo 'Page : ';
    for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
        echo '<a href="index.php?page=4&amp;page_cg=' . $i . '">' . $i . '</a> ';
    }
    ?>
        </TABLE>
    Néanmoins l'erreur du } reste la même donc je n'ai pas encore testé si la mise en page est bonne et m'obtient bien ce que je voudrais...

    Voila en ésperant que quelqu'un passe par la et me dise ce qu'il faut changer pour que le script marche, ca me rendrai bien service vue que c'est le script principal de mon site lol :/

    Merci d'avance

  7. #7
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Apparament il te manque un ;
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Elu boulet de l'année...
    Je l'avai vu en plus mais j'avai pa jugé bon de le mettre ce fichu ; xD mdr
    Merci bien, ca m'affiche bien le tableau...

    MAIS !
    Pas d'image..
    Le lien ne marche pa ca se contente de mettre :
    "http://s146282467.onlinehome.fr/aw_2/index.php?page=" => sans la variable a la fin...
    Tout comme le nom ""'.$data['film'].'"" qui ne s'affiche pa...

    Donc en gros aucune des 3 variables n'est pris en compte...
    Le "echo" pourtant n'a pa été modifié :s

    J'ai rajouté un "include "connect_db.php";" qui manquait je pense..
    mais ce n'est pas ca :/

    Une idée qui puisse m'aider ?

    Je rapelle mon script :
    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
     
    <TABLE border=2 cellpadding=10>
    <?php
    include "connect_db.php";
     
    $nombrefilm = 20; 
     
    // On récupère le nombre total de film ds la bdd
    $retour = mysql_query('SELECT COUNT(*) AS film FROM bdd');
    $donnees = mysql_fetch_array($retour);
    $total = $donnees['film'];
     
    // On calcule le nombre de pages à créer
    $nombreDePages  = ceil($total / $nombrefilm);
     
     
    if (isset($_GET['page_cg']))
    {
        $page = $_GET['page_cg']; // On récupère le numéro de la page indiqué dans l'adresse 
    }
    else // La variable n'existe pas, c'est la première fois qu'on charge la page
    {
        $page_cg = 1; // On se met sur la page 1 (par défaut)
    }
    $premierMessageAafficher = ($page_cg - 1) * $nombrefilm;
     
    $reponse = mysql_query('SELECT * FROM bdd ORDER BY timestamp DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombrefilm) or die(mysql_error());
     
    while ($donnees = mysql_fetch_array($reponse) )
    {
    if ( $compteur == 0 )  echo '<tr>'; // cas particulier du premier <tr>
    elseif ( $compteur%3 == 0  ) echo '</tr><tr>';
    echo ('<TD align=center><A HREF="index.php?page='.$data['numero'].'"><IMG SRC="'.$data['image'].'" width=120 height=160><br>"'.$data['film'].'"<br></A></TD>');
    if ( $nb == $compteur+1   ) echo '</tr>'; // cas particulier du dernier </tr>
    $compteur++;
    }
    // Puis on fait une boucle pour écrire les liens vers chacune des pages
    echo 'Page : ';
    for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
        echo '<a href="index.php?page=4&amp;page_cg=' . $i . '">' . $i . '</a> ';
    }
    ?>
        </TABLE>

    Par la meme occasion, je vien de voir que les page apparaisse au dessu du tableau alors que pourtant dans le script, j'ai mis le echo en dessous..

    Oula....HELP PLEASE !!!!

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Bon en avance un peu...

    J'ai modifié le :
    while ($donnees = mysql_fetch_array($reponse) ) {
    par
    while($data = mysql_fetch_assoc($reponse)) {

    Ca m'affiche bien les variable comme il faut...donc on peut dire que le script est déja fonctionnel...

    Reste plus que le echo qui fait apparaitre les pages que j'aurai préferé en bas du tableau plutot qu'en haut si vous saviez comment modifier ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // Puis on fait une boucle pour écrire les liens vers chacune des pages
    echo 'Page : ';
    for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
        echo '<a href="index.php?page=4&amp;page_cg=' . $i . '">' . $i . '</a> ';
    }

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

Discussions similaires

  1. Problème avec les quote
    Par student_php dans le forum Langage
    Réponses: 4
    Dernier message: 13/12/2010, 20h27
  2. Réponses: 15
    Dernier message: 21/02/2007, 17h29
  3. Formulaires : problème avec les slashes et les quotes
    Par GarGamel55 dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2005, 15h59
  4. [Tableaux] Problème avec les boucles
    Par speed_man002 dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 15h42

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