PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 17-08-2009 21:39:57

cire390
Membre
Inscription : 17-08-2009
Messages : 14

[Résolu] variable dans l'url

Bonjour,

Je pense que ce  probleme est basique est souvent abordé mais je seche réellement.

J'ai crée une page index dans laquelle j'affiche des entrées de ma DB, j'y ai inserai un lien de sorte à envoyer un id dans l'url comme ca :

[c]echo '<td bgcolor="#CCCCCC"><a href=detail.php?id_pen='.$row["id_page"].' target=\"_blank\">'.$row["id_page"].'</a></td>'; [/]

Seulement, je n'arrive pas a récupérer les details dans ma page détail, voici mon code:
(l'entrée id_page est ecrite comme ca ex:  169.23.23.1)
Est ce une erreur de syntaxe ou pas, je n'obtient pas de message d'erreur, seulement une page "le site web ne peut ouvrir cette page...

 
<?php
//parametres de connexion
$machine="localhost";
$utilisateur="root";
$mot_passe="root";
$nom_base="demo";
//connexion au SGBD Mysql
$con=mysql_connect($machine,$utilisateur,$mot_passe) or die ('Erreur : '.mysql_error() );

mysql_select_db($nom_base);
//récupère tous les enregistrements
$query='SELECT id_page FROM pages ORDER BY form_date DESC';
$resultat=mysql_query($query,$con) or die (mysql_error());;
$total=mysql_num_rows($resultat);
// si on a récupéré un résultat on l'affiche.
if($total) {
//debut du tableau
echo'<table bgcolor="#FFFFFF">'."\n";  
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Nom</u></b></td>';
echo '</tr>'."\n";
// lecture et affichage des résultats
while($row=mysql_fetch_array($resultat))
{
echo '<tr>';
echo '<td><b>'.$data['form_date'].'</b></td>';
echo '<td><b>'.$data['form_heure'].'</b></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($resultat);
?>

Voila je sais que c'est un peu long mais je remercie d'avance les personnes qui pourrais m'aider

Dernière modification par cire390 (17-08-2009 22:30:26)

Hors ligne

#2 17-08-2009 22:36:37

moijhd
Membre
Inscription : 13-06-2009
Messages : 167

Re : [Résolu] variable dans l'url

Bonsoir,

si je comprend bien, la page details.php dont tu donnes la source n'est pas trouvée par le navigateur ?

Hors ligne

#3 17-08-2009 22:47:03

cire390
Membre
Inscription : 17-08-2009
Messages : 14

Re : [Résolu] variable dans l'url

oui c'est ca, mais j'ai teste en utilisant un "id_page" de ma DB et la page detail.php (en tapant dans l'url http//localhost/demo/detail.php)  s'affiche correctement avec les champs que j'appelle.

A savoir que je viens de trouver une erreur dans mon tableau, lorsque j'affiche mes données. Je pense que c'est $row et non pas $data dans
[c]
echo '<td><b>'.$data['form_date'].'</b></td>';
echo '<td><b>'.$data['form_heure'].'</b></td>';
[/c]

Dernière modification par cire390 (17-08-2009 22:55:24)

Hors ligne

#4 18-08-2009 11:28:16

lnki
Membre
Lieu : Istres
Inscription : 08-05-2009
Messages : 4

Re : [Résolu] variable dans l'url

Salut,

- C'est bien $row[...] et pas $data[...]
- Aprés pour ton soucis, tu passes une variable, id_pen dans ce cas, dans l'url. Mais dans ton fichier de destination tu ne récupères nul part cette variable, et tu ne l'inclus pas dans ta requête.

Hors ligne

#5 18-08-2009 13:51:41

cire390
Membre
Inscription : 17-08-2009
Messages : 14

Re : [Résolu] variable dans l'url

Merci beaucoups de l'aide.

Au vu des nombreuses erreurs j'ai réecrit mon code de facon bcps plus simple.

J'arrive grace au echo $id à récupérer ce qui est dans l'url mais c'est tout. Je ne vois pas pourquoi le reste ne marche.

<?php

$id = $_GET['id_page'];
echo $id;

mysql_connect("localhost", "root", "root");
mysql_select_db("demo");
 
$req = mysql_query('SELECT id_pen, form_date, doc_nom FROM pages WHERE id_page=' . $_GET['id_page']);
$data = mysql_fetch_array($req);
echo $data['id_pen'];
echo $data['id_nom'];
mysql_close();

?>

Dernière modification par cire390 (18-08-2009 14:02:00)

Hors ligne

#6 18-08-2009 14:35:04

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [Résolu] variable dans l'url

SAluton,
Je ne vois pas de colonne id_nom dans la requête.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#7 18-08-2009 15:29:40

cire390
Membre
Inscription : 17-08-2009
Messages : 14

Re : [Résolu] variable dans l'url

Désolé c'est une erreur de ma part.
J'ai rectifié et mis
echo $data['id_pen'];
echo $data['form_date'];

Mais le résultat est pareil.

Hors ligne

#8 18-08-2009 15:37:32

moijhd
Membre
Inscription : 13-06-2009
Messages : 167

Re : [Résolu] variable dans l'url

Pourrais-tu poster tes deux pages clairement : celle qui donne les liens detail.php et detail.php ? (en utilisant [ code php ][ /code ] pour la coloration)

Dernière modification par moijhd (18-08-2009 15:38:52)

Hors ligne

#9 18-08-2009 19:00:17

cire390
Membre
Inscription : 17-08-2009
Messages : 14

Re : [Résolu] variable dans l'url

Voici ma page index, qui marche car elle affiche la liste que je veux

<?php
$machine="localhost";
$utilisateur="root";
$mot_passe="root";
$nom_base="demo";
$con=mysql_connect($machine,$utilisateur,$mot_passe) or die ('Erreur : '.mysql_error() );

mysql_select_db($nom_base);
$query='SELECT id_page FROM pages ORDER BY form_date DESC';
$resultat=mysql_query($query,$con) or die (mysql_error());;
$total=mysql_num_rows($resultat);
if($total) {
 
echo'<table bgcolor="#FFFFFF">'."\n";
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Nom</u></b></td>';
echo '</tr>'."\n";
while($row=mysql_fetch_array($resultat))
{
echo '<tr>';
echo '<td bgcolor="#CCCCCC"><a href=detail.php?id_page='.$row["id_page"].' target=\"_blank\">'.$row["id_page"].'</a></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($resultat);
?>

et voici la page detail.php

<?php
$id = $_GET['id_page'];
echo $id;

mysql_connect("localhost", "root", "root");
mysql_select_db("demo");

$req = mysql_query('SELECT id_pen, form_date, doc_nom FROM pages WHERE id_page=' . $_GET['id_page']);
$data = mysql_fetch_array($req);
echo $data['id_pen'];
echo $data['form_date'];

mysql_close();
?>

Merci encore pour le soutien apporté

Hors ligne

#10 18-08-2009 20:33:51

moijhd
Membre
Inscription : 13-06-2009
Messages : 167

Re : [Résolu] variable dans l'url

Je ne vois rien qui empeche le fonctionnement du scrypt :S
Je l'ai réécris plus lisiblement pour moi avec quelques modifications mineurs

[code php]
<?php
// index.php
$machine = 'localhost';
$utilisateur = 'root';
$mot_passe = 'root';
$nom_base = 'demo';
$con = mysql_connect($machine, $utilisateur, $mot_passe) or die ('Erreur : '.mysql_error());
mysql_select_db($nom_base);
$query = 'SELECT id_page FROM pages ORDER BY form_date DESC';
$resultat = mysql_query($query,$con) or die (mysql_error());;
$total = mysql_num_rows($resultat);
if($total != false){
?>
<table bgcolor="#FFFFFF">
  <tr>
    <td bgcolor="#669999"><b><u>Nom</u></b></td>
  </tr>
  <?php
    while($row = mysql_fetch_array($resultat)){
    ?>
      <tr>
        <td bgcolor="#CCCCCC"><a href="detail.php?id_page=<?php echo $row['id_page'];?>" target="_blank"><?php echo $row['id_page'];?></a></td>
      </tr>
      <?php
    }
?>
</table>
<?php
}
else{
?>
Pas d'enregistrements dans cette table...
<?php
}
mysql_free_result($resultat);
?>

<?php
// detail.php
$id = $_GET['id_page'];
echo $id;

mysql_connect('localhost', 'root', 'root');
mysql_select_db('demo');

$req = mysql_query('SELECT id_pen, form_date, doc_nom FROM pages WHERE id_page= '.mysql_real_escape_string($_GET['id_page']));
$data = mysql_fetch_array($req);
echo $data['id_pen'];
echo $data['form_date'];

mysql_close();
?>
[/code]

Hors ligne

#11 18-08-2009 20:58:35

cire390
Membre
Inscription : 17-08-2009
Messages : 14

Re : [Résolu] variable dans l'url

Bon merci beaucoup, je vais continuer mes recherches. En essayant par exemple de changer le champs de référence.

En tous cas  merci à tous

(Pour les modo, je suis désolé mais je ne vois pas comment mettre le message en résolu )

Dernière modification par cire390 (18-08-2009 21:00:46)

Hors ligne

#12 20-08-2009 08:21:02

cire390
Membre
Inscription : 17-08-2009
Messages : 14

Re : [Résolu] variable dans l'url

Je réouvre mon post car j'ai enfin reussi à faire marcher ma page qui affiche les détails, je met le code pour ceux que ca pourrait intérréser.
Pourquoi ce code marche est pas l'autre, je sais pas. Peut-être du au fait que je mets les résultats dans du html??
Enfin, ca marche. Mais j'ai une autre question :

<?php
$id = $_GET['id_page'];
echo $id;

$machine="localhost";
$utilisateur="root";
$mot_passe="root";
$nom_base="demo";
$con=mysql_connect($machine,$utilisateur,$mot_passe) or die ('Erreur : '.mysql_error() );

mysql_select_db($nom_base);
$query="SELECT id_pen, form_date, doc_nom, id_page, doc_image FROM pages WHERE id_page='$id'";
$resultat=mysql_query($query,$con) or die (mysql_error());;
$total=mysql_num_rows($resultat);
if($total) {
echo'<table bgcolor="#FFFFFF">'."\n";  
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Nom</u></b></td>';
echo '</tr>'."\n";
while($row=mysql_fetch_array($resultat))
{
echo '<tr>';
echo '<td bgcolor="#CCCCCC"><a href=detail.php?id_page='.$row["id_page"].' target=\"_blank\">'.$row["id_page"].'</a></td>';
echo '<td bgcolor="#CCCCCC">'.$row["form_date"].'</a></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($resultat);
?>

Quelqu'un saurait-il comment récupérer et afficher une image qui est déja stockée dans la DB. (je reprend un développement existant ou la personnes a stocké les images dans la DB, je peux malheuresement pas faire autrement).

En rajoutant ceci au milieu,  j'arrive à afficher l'image mais elle est en binaire (serie de chiffres et lettre incompréhensible), comment je peux la "traduire"?

echo '<td bgcolor="#CCCCCC">'.$row["form_date"].'</a></td>';
header('Content-type: image/png');
echo '<td bgcolor="#CCCCCC">'.$row["doc_image"].'</a></td>';
echo '</tr>'."\n";

Merci

Dernière modification par cire390 (20-08-2009 09:38:07)

Hors ligne

Pied de page des forums