Probleme de page

david -  
 david -
Bonjour,

pour mon site sur la musiques,, j'ai creer une page artiste.php, et la je veux afficher SEULEMENT les titres des clips des artistes concernés, mais il affiche tout les titres de tout les artistes,
j'ai fais plusieures tests mais rien ne change, je souhaiterai savoir comment pourrai-je regler?
je vous envoye le code de la partie clip:

<div id="clips">
<p>
<?php
$requete="SELECT * FROM clips WHERE ID_clip='".$_GET['id']."' ORDER BY id DESC LIMIT 0, 5";
$result=mysql_query($requete);

// Pour afficher les titres des clips
while($clip = mysql_fetch_array($result))
{
echo 'Titre du clip : <a href="' .$clip['id']. '">' .$clip['titre']. '</a><br />';
}
?>
</p>
</div>


pouvez vous m'aider?
merci par avance pour votre aide

30 réponses

  • 1
  • 2
  1. ataos Messages postés 74 Statut Membre
     
    WHERE ID_clip='".$_GET['id']." AND artistes = "$artistes"

    Avec avant $artiste=htmlentities_decode($_GET['artistes']);

    Je pense. A vérifier quant à l'orthographe exactes des fonctions. :)

    Bon courage.
    0
  2. david
     
    donc ,je modifie je met ca WHERE ID_clip='".$_GET['id']." AND artistes = "$artistes"

    mais par contre ca $artiste=htmlentities_decode($_GET['artistes']); je n'ai pas tres bien compris, ou je dois mettre?

    je dois mettre $artiste=htmlentities_decode($_GET['artistes']); juste avant WHERE ID_clip?

    merci par avance pour votre aide
    0
  3. ataos Messages postés 74 Statut Membre
     
    Bonjour,
    Vois-tu, tu as été obligé de faire une concaténation pour utiliser ton get id dans ta requête. Je n'aime pas trop ça, ça me fatigue de devoir mettre des ". ." partout. ^^ du coup, avant de lancer ta requete je te conseil de mettre tes get dans des variables plus 'simples'.

    Donc, l'idée serait:

    $id = $_GET['id'];
    $artiste=$_GET['artiste'];
    et ensuite écrire ta requete avec ces deux variables.

    Peut être que je me trompe, disons que d''expérience, c'est la méthode qui génère le moins d'erreur chez moi. :)

    $requete="SELECT * FROM clips WHERE ID_clip = '$id' AND artiste = '$$artiste' ORDER BY id DESC LIMIT 0, 5";

    Voilà, ça devrait marcher si je ne m'abuse. :)

    Bon courage toujours. :)
    0
  4. david
     
    donc, ca devrait etre quelque chose comme ca:
    <div id="clips">
    <p>
    <?php

    $id = $_GET['id'];
    $artiste=$_GET['artiste'];
    $requete="SELECT * FROM clips WHERE ID_clip = '$id' AND artiste = '$$artiste' ORDER BY id DESC LIMIT 0, 5";
    $result=mysql_query($requete);

    // Pour afficher les titres des clips
    while($clip = mysql_fetch_array($result))
    {
    echo 'Titre du clip : <a href="' .$clip['id']. '">' .$clip['titre']. '</a><br />';
    }
    ?>
    </p>
    </div>

    et la il devrait marquer seulement les titres des artistes concerné?

    merci par avance pour votre aide
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ataos Messages postés 74 Statut Membre
     
    normalement oui. :)

    L'histoire des htmlentities_decode, c'est que tes variables venant du GET, sont inscrites dans l'url, aussi je peux mettre dans l'url : http:///blabla.com/?id="jevaishackertonsitehehehejesuisungrosmechant"&artiste="maisjesaispaslefaireetveuxpaslesavoir" Et la ton script utilisera les variables avec ce que le méchant hacker aura mit dedans. :s

    htmlentities_decode neutralise ces codes.

    Enfin, je crois. :)
    0
  7. david
     
    j'ai essayé mais il affiche une message d'erreur va voir sur: http://topmusic.free-hosting.fr/artiste.php?id=1

    et je t'envoye le code entier de la page

    <?php
    include("./includes/haut.php");
    if(!isset($_GET['id']))
    {
    header("Location: index.php");
    }
    elseif(!is_numeric($_GET['id']))
    {
    header("Location: index.php");
    }
    else
    {
    ?>

    <div id="artiste">
    <?php
    mysql_connect("", "", "");
    mysql_select_db("");
    ?>
    <p>
    <?php
    $requete="SELECT * FROM artiste WHERE ID='".$_GET['id']."'";
    $result=mysql_query($requete);
    $artiste=mysql_fetch_array($result);
    echo 'Nom : '.$artiste['nom'].' <br />
    Photo : <img src="'.$artiste['photo'].'" <br />
    Biographie : '.$artiste['biographie'];
    ?>
    </p>
    </div>

    <div id="clips">
    <p>
    <?php

    $id = $_GET['id'];
    $artiste=$_GET['artiste'];
    $requete="SELECT * FROM clips WHERE ID_clip = '$id' AND artiste = '$$artiste' ORDER BY id DESC LIMIT 0, 5";
    $result=mysql_query($requete);

    // Pour afficher les titres des clips
    while($clip = mysql_fetch_array($result))
    {
    echo 'Titre du clip : <a href="' .$clip['id']. '">' .$clip['titre']. '</a><br />';
    }
    ?>
    </p>
    </div>

    <div id="concert">
    <p>
    <?php
    $retour = mysql_query('SELECT * FROM concert ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour))
    {
    $selection_date_de_concert = mysql_query("SELECT * FROM `concert` WHERE artiste = '".$nom."'");
    while($affiche_date_de_concert = mysql_fetch_array($selection_date_de_concert))
    {
    $date_de_concert = $affiche_date_de_concert['date'];
    $id_de_concert = $affiche_date_de_concert['id'];
    }
    }
    ?></p>
    </div>
    <?php
    }
    include("./includes/bas.php");
    ?>

    merci par avance pour votre aide
    0
  8. ataos Messages postés 74 Statut Membre
     
    include(./includes/haut.php) [function.include]: failed to open stream: No such file or directory
    Il ne trouve pas le fichier à inclure. ./includes/haut.php

    t'es sur du './'? si c dans un dossier enfant, juste /includes.

    mysql_fetch_array(): supplied argument is not a valid MySQL

    Ça je crois que ça vient quant on utilise un truc genre: monarray[1] alors qu'il attendait monarray['titre']. Me semble-t-il.
    0
  9. david
     
    Pour les include je sais, c'etait pas ca mon probleme

    je parlais de ca:

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/virtual/topmusic.free-hosting.fr/htdocs/artiste.php on line 42

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/virtual/topmusic.free-hosting.fr/htdocs/artiste.php on line 57

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/virtual/topmusic.free-hosting.fr/htdocs/artiste.php on line 57

    comment pourrai-je regler ca?

    merci par avance pour votre aide
    0
  10. ataos Messages postés 74 Statut Membre
     
    AND artiste = '$$artiste'

    Pour l'instant je ne vois que ça. Mais je regarde plus en détail dés que le café est prêt. :p
    0
  11. ataos Messages postés 74 Statut Membre
     
    Ok, merci? Ton problème est résolu? Il reste des zones d'ombres?

    :)
    0
  12. david
     
    nn il n'est toujours pas resolu, pourtant je cherch, il affiche toujours une message d'erreur : http://topmusic.free-hosting.fr/artiste.php?id=1
    0
  13. ataos Messages postés 74 Statut Membre
     
    Unknown column 'clips' in 'where clause'
    Ce qui signifie qu'il n'y a pas de colonne dans ta base portant ce nom là.
    Après je ne vois pas d'erreur, a part les includes du début.
    :)

    Bon courage :)
    0
  14. david
     
    mais j'ai aussi essayé avec une existant mais c'etait pareil
    0
  15. ataos Messages postés 74 Statut Membre
     
    On peut voir le code où tu utilises le where clip = ?
    0
  16. david
     
    voila:

    $requete="SELECT * FROM clips WHERE clips = '$id' AND artiste = '$$artiste' ORDER BY id DESC LIMIT 0, 5";
    $reponse=mysql_query($requete) or die(mysql_error());
    0
  17. david
     
    Bonsoir,
    j'ai reussi a afficher les titres des clips mais la il affiche tout les titres, mais moi je veux seulement les titres d'akon par exemple.

    comment pourrai-je regler cet probleme?

    merci par avance pour votre aide
    0
  18. ataos Messages postés 74 Statut Membre
     
    Ce que je peux te conseiller:
    Je ne sais pas si tu as lancé une sessions sur tes pages. Si tel n'est pas le cas, commence ton fichier par
    <?php session_start() ?> Sans même un espace avant. Comme ça tu vas pouvoir garder des trucs en mémoire d'une page à l'autre.

    Ensuite, au niveau de ta requette ça donne un truc comme ça.

    $truc="blablabla"
    $bidul=mysql_query('$truc');

    Et là, $_SESSION['a']=$truc;

    Sous ton <body> tu mets un pti coup de <?php echo $_SESSION['a']; ?>

    Comme ça tu verras exactement ce qui est envoyé à mysql. J'utilise cette astuce pour déboger mes requettes.

    Souvent j'y découvre un , un ' ou l'absence d'un autre truc qui explique mes déboires.

    Bon courage .
    0
  19. ataos Messages postés 74 Statut Membre
     
    Ca n'avait pas pour vocation de résoudre ton problème mais de pouvoir diagnostiquer ton problème. tu dois avoir quelque par dans ta page la requête qui sera réellement envoyé à ton serveur mysql.

    <?php echo $_SESSION['a']."<<ICI"; ?>

    Comme ça tu verra ce qui est envoyé. Souvent les dysfonctionnements comme le tiens trouvent leur origine dans la requête que reçoit le serveur.
    0
  • 1
  • 2