Php et MySql problème requête

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Php et MySql problème requête

Re: Php et MySql problème requête

par toffu » 24 nov. 2011, 17:53

Personne pour m'aider ?

Re: Php et MySql problème requête

par toffu » 23 nov. 2011, 19:29

désolé enfaite j'ai bien compris mon code et j'ai donc pu le modifier pour qu'il soit logique alors voilà le résultat :

Code : Tout sélectionner

<?php mysql_connect("localhost", "root", "") or die (mysql_error ()); mysql_select_db("cinema") or die(mysql_error()); $strSQL = ('SELECT `nom`, `id_distributeur` FROM `distributeurs`'); $rs = mysql_query($strSQL); while($row = mysql_fetch_array($rs)) { $strName = $row['nom']; $strLink = "<a href = 'list.php?id = ".$row['id_distributeur']."'>" . $strName . "</a>"; echo "<li>" . $strLink . "</li>"; } mysql_close(); $strSQL = mysql_query('SELECT `titre` FROM `films` WHERE `id_distributeur` ='.$_GET['id_distributeur'].' ORDER BY `id_genre`, `annee_production`, `titre`'); $rs = mysql_query($strSQL); while($row = mysql_fetch_array($rs)) { echo "<td>titre:</td><td>" . $row["titre"] . " </td>"; } mysql_close(); ?>
mais j'ai un soucis apparemment quand je reçois l'id via le $_GET car j'ai une erreur qui me dit cela :

Notice: Undefined index: id_distributeur in C:\wamp\www\TP6\list.php

je ne comprend pas pourquoi, l'id_distributeur est pourtant bien récupéré et quand je le rentre manuellement cela fonctionne; pourriez vous m'aider svp ?

Cordialement,

Re: Php et MySql problème requête

par tofu » 23 nov. 2011, 18:57

enfaite voilà ou j'en suis maintenant :

Code : Tout sélectionner

<?php mysql_connect("localhost", "root", "") or die (mysql_error ()); mysql_select_db("cinema") or die(mysql_error()); $strSQL = ('SELECT `nom` FROM `distributeurs`'); $rs = mysql_query($strSQL); while($row = mysql_fetch_array($rs)) { $strName = $row['nom']; $strLink = "<a href = 'list.php?id = " . $row['nom'] . "'>" . $strName . "</a>"; echo "<li>" . $strLink . "</li>"; } mysql_close(); $strSQL = mysql_query('SELECT `titre` FROM `films` WHERE `id_distributeur` =1 ORDER BY `id_genre`, `annee_production`, `titre`'); $rs = mysql_query($strSQL); while($row = mysql_fetch_array($rs)) { echo "<dt>titre:</dt><dd>" . $row["titre"] . " </dd>"; } mysql_close(); ?>
Parce que mon but est d'avoir que une seule page et pas d'en avoir plusieurs.
Maintenant, je pense que mon problème c'est de devoir utiliser un $_GET c'est la que je suis perdu pour transmettre l'information

Cordialement,

Re: Php et MySql problème requête

par toffu » 23 nov. 2011, 13:21

Je comprend à peu près mais j'ai du mal à mettre en place la solution...

j'ai donc mes deux requête SQL comme ceci :

Code : Tout sélectionner

$result = mysql_query('SELECT `nom` FROM `distributeurs`'); $test = mysql_query('SELECT `titre` FROM `films` WHERE `id_distributeur` =1 ORDER BY `id_genre`, `annee_production`, `titre`');
et ensuite j'ai une boucle comme cela :

Code : Tout sélectionner

while ($row = mysql_fetch_assoc($result)) { echo ("<tr>"); echo '<a href="distributeur.php?id=' . $test['id_distributeur'] . '">' . $row['nom'] . '</a>'.'<br />'; echo ("</tr>"); }
dans mon while dois-je rajouter un ?

Code : Tout sélectionner

"&& row1 = mysql_fetch_assoc($test)
et enfaite c'est à partir de la que je n'y arrive pas.
Je fais un $_GET['id_distributeur'] = $test ?

Cordialement,

Re: Php et MySql problème requête

par xTG » 23 nov. 2011, 10:13

Le 1 est justement à remplacer par la valeur que tu fais passer grâce au href. Cette valeur se retrouve dans le tableau $_GET.

Re: Php et MySql problème requête

par toffu » 23 nov. 2011, 01:39

enfaite j'ai trouvé j'ai créée une autre variable comme ceci :

Code : Tout sélectionner

$test = mysql_query('SELECT `titre` FROM `films` WHERE `id_distributeur` =1 ORDER BY `id_genre`, `annee_production`, `titre`');
que j'appelle dans le "a href", mais je ne comprend pas pourquoi faire passer la valeur par un GET est ce que cela est vraiment obligatoire ?

Et aussi je me suis aperçu d'un autre soucis ma requête est la suivante donc :

Code : Tout sélectionner

$test = mysql_query('SELECT `titre` FROM `films` WHERE `id_distributeur` =1 ORDER BY `id_genre`, `annee_production`, `titre`');
mais `id_distribution` =1 n'est pas vrai, tout dépend sur quel distributeur l'on a cliqué (chaque distributeur à un `id_distribution` différent(1,2,3,4,5 etc ...)), comment faire donc pour dire que quand je clic sur un distributeur, il s'affiche sur la page la liste des films du distributeurs ?

Cordialement,

Re: Php et MySql problème requête

par toffu » 22 nov. 2011, 23:13

merci de votre réponse, je crois avoir compris mais juste un petit soucis encore je pense,
quand je clic sur mon distributeur je dois exécuter cette requête :

Code : Tout sélectionner

SELECT `titre` FROM `films` WHERE `id_distributeur` =1 ORDER BY `id_genre`, `annee_production`, `titre`


sachant que Where `id_distributeur` =1 (le numéro correspond à chaque fois à un distributeur différent).

Je pense donc ne pas pouvoir utiliser la méthode que vous m'avez dit, si il faut bien utiliser celle la je ne vois pas comment faire là

Cordialement,

Re: Php et MySql problème requête

par xTG » 22 nov. 2011, 22:43

Il faut faire un lien (dans ta boucle) qui transmette la clé primaire de ton distributeur.
echo '<a href="distributeur.php?id=' . $row['id'] . '">' . $row['nom'] . '</a>';
Sur la page vers laquelle le lien redirige tu récupères cet identifiant (dans le tableau $_GET) et tu fais une requête pour afficher les informations. :)

Php et MySql problème requête

par toffu » 22 nov. 2011, 22:31

Bonsoir,

J'ai un petit soucis, enfin du moins je ne sais pas comment faire surtout, j'ai une requête en php MySql comme celle-ci :

Code : Tout sélectionner

<?php mysql_connect("localhost", "root", "") or die("Impossible de se connecter : " . mysql_error()); mysql_select_db('cinema'); $result = mysql_query('SELECT `nom` FROM `distributeurs`'); echo("<table> <tr> <td>nom</td> </tr>"); while ($row = mysql_fetch_assoc($result)) { echo ("<tr>"); echo ("<td>".$row["nom"]."</td>"); echo ("</tr>"); } echo("</table>"); mysql_free_result($result); ?>
Donc j'ai bien ma liste des distributeurs qui s'affiche quand j'exécute ce script mais j'aimerais que chaque distributeurs soit cliquable, c'est à dire que quand je clic sur un distributeur j'en sache plus sur lui.

Comment faire ?

Cordialement,