PDA

Voir la version complète : Récuperation des informations d'une table


Coldfusion
19/02/2004, 15h38
Bonjour

Déjà avant tout, un grand grand merci à Pitchoune qui m'a maché le travail de programmation php sur lequel je bloquait (sujet ouvert dans cette section). Il à tout fait, je n'ai eut qu'a uploader et à savourer la bonne marche de tout cela. dans cette étape j'ai quand meme pu comprendre comment me connecter à un DB et comment faire exactement une table, je l'en remercie encore.

Maintenant il m'arrive un probleme plus simple, bien plus simple. Mais sur lequel je bloque bien evidemment.

J'ai essayé de faire tout seul une autre page php qui afficherait les informations présentes dans la table.

J'ai repris la connexion à la DB qu'a fait Pitchoune:
<?
require("_connexion.php"); // Inclus les paramètres de ce fichier externe

$db = @mysql_connect("$dbhost", "$dbuser", "$dbpass") OR DIE("Erreur : la base de données n'existe pas."); // Connexion à la base de données
@mysql_select_db("$dbbase",$db) OR DIE("Erreur : la base de données n'est pas accessible."); // Choix de la base de données

Ca, c'est ok.
ensuite il faut donc recuperer ces infos dans la table :
// on créer la requete SQL et on l'envoie
$sql='SELECT pseudo,mdp,email FROM photo2';

// on envoie la requete
$req=mysql_query($sql)ordie('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrements
while($data=mysql_fetch_array($req))
{
// on affiche les informations de l'enregistrements en cours
echo'<b>'.$data['pseudo'].' '.$data['mdp'].'</b> '.$data['email'].' ';
}

// on ferme la connexion à mysql
mysql_close();

Je précise que j'ai 4 colonnes dans la table : "userID" "pseudo" "mdp" "email"
J'ai essayé de faire afficher les 3 colonnes sauf l'USER ID. Je croit que le code que j'ia modifié m'a l'air ok mais il me met une erreur à la ligne 8 qui est celle-là :
$sql='SELECT pseudo,mdp,email FROM photo2';

Je précise que ma table s'appelle bien "photo2"

Ou est mon erreur ?

Merci à vous les pros... :( :( :( :rolleyes:

Foularou
19/02/2004, 15h44
Deja c pas

// on envoie la requete
$req=mysql_query($sql)ordie('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // on envoie la requete mais plutot
// on envoie la requete
$req=mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // on envoie la requete
avec un espace sur ordie puisque c une condition.


si tu met
$sql='SELECT * FROM photo2';

ca te met toujours l'erreur?

Colle nous aussi le message d'erreur .

Cordialement.
Foularou.

Pitchoune
19/02/2004, 15h47
Déjà avant tout, un grand grand merci à Pitchoune qui m'a maché le travail de programmation php sur lequel je bloquait (sujet ouvert dans cette section). Il à tout fait, je n'ai eut qu'a uploader et à savourer la bonne marche de tout cela. Dans cette étape, j'ai quand même pu comprendre comment me connecter à une DB et comment faire exactement une table, je l'en remercie encore.
Il y a que par des exemples de scripts qu'on comprends et qu'on arrive à construire quelque chose de productif ;)

Pour le reste, je connais pas trop cette méthode d'utilisation du while, je procèderai à des tests avant de me prononcer :)

Foularou
19/02/2004, 15h48
Ah oui et met des espace de temps en temps entre tes instructions la ca fait bloc
exemple echo'...'; c mieux echo '...';

Foularou
19/02/2004, 15h51
eurf aussi merci pitchoune d'avoir attiré mon attention sur le while :p
je crois que la syntaxe correcte de mysql_fetch_array c'est @mysql_fetch_array

while ($data= @mysql_fetch_array($req))
{
..........Script d'affichage .......................................

}


PS : J'ai rien testé c'est juste a premiere vu les trucs qui me semble bizzare .

Pitchoune
19/02/2004, 15h54
Moi je voyais pas ça dans le while, je sais pas colmment il doit être paramétré ni quel fonction utiliser, je sais que je mais $i=0; avant et que j'emploie le while après (j'ai pas la syntaxe ici).

Foularou
19/02/2004, 15h59
Ben idem pour moi déja j'utilise pas les ' mais les " je c'est pas trop pourquoi dés qu'il y a des ' je suis complétement perdu en plus :p Ca doit etre des habitudes que j'ai. La je suis incapable de dire si son echo est correct ou pas lol:)

Pitchoune
19/02/2004, 16h03
Son dernier echo m'a l'air correct :)

Coldfusion
19/02/2004, 17h13
super !
Merci pour vos réponses ultra rapides !

bon, j'ai changé la ligne 8 comme tu le propose foularou.
Je voit que tu remplace les valeurs que je demande (email...mdp...) par une "*"
J'ai cherché à quoi cela correspondait et j'ai encore apppris une nouvelle chose... ca affiche tout. lol

Bon maintenant... erreur ligne 11
Parse error: parse error in /usr/local/www/data.users/monsite.com/www/photo3.php on line 11

D'ou cela peut-il venir...ca je n'y comprends rien.
sinon pour le code, je l'ai pris sur PHP débutant : http://www.phpdebutant.org/article66.php
Un site bien fournit mais sans support. au moins sur vbFrance...c'est chaleureux et le support est là présent.
:026:

Foularou
19/02/2004, 17h17
t'as modif le or die?

Foularou
19/02/2004, 17h19
$req=mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


et puis ton select aussi met des espace entre les nom de chmpas et le ,

Pitchoune
19/02/2004, 17h20
Revois le message #2 de la discussion :)

Coldfusion
19/02/2004, 17h29
lol quelle histoire !

Merci encore à vous 2

voici mon fichier en entier :
<?
require("_connexion.php"); // Inclus les paramètres de ce fichier externe

$db = @mysql_connect("$dbhost", "$dbuser", "$dbpass") OR DIE("Erreur : la base de données n'existe pas."); // Connexion à la base de données
@mysql_select_db("$dbbase",$db) OR DIE("Erreur : la base de données n'est pas accessible."); // Choix de la base de données

// on créer la requete SQL et on l'envoie
$sql='SELECT * FROM photo2';

// on envoie la requete
$req=mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrements
while($data=mysql_fetch_array($req))
{
// on affiche les informations de l'enregistrements en cours
echo'<b>'.$data['pseudo'].' '.$data['mdp'].'</b> '.$data['email'].' ';
}

// on ferme la connexion à mysql
mysql_close();
?>

Là tout est bien sauf que maintenant j'ai une erreur ligne 15 !!! :055:
non je ne suis pas :083:

La ligne 15...c'est la ligne ou il y a le "{"
plutot bizarre là non ?

Foularou
19/02/2004, 17h31
MET DES ESPACES ENTRE TES INSTRUCTIONS.

While (

Pitchoune
19/02/2004, 17h36
Mets toujours des espaces, mets en aussi un entre echo et ' de la ligne 17 :)

Foularou
19/02/2004, 17h38
Lol cf post #4 et #5

Coldfusion
19/02/2004, 17h40
j'ai bien mis un espace entre le echo et aussi entre le while

j'ai toujours l'erreur :

Parse error: parse error, unexpected '{' in /usr/local/www/data.users/monsite.com/www/photo3.php on line 15

Je vais me faire taper sur les doigts...

Pitchoune
19/02/2004, 17h41
@ avant mysql_fetch_array

@mysql_fetch_array

Foularou
19/02/2004, 17h41
cf #5.

je crois que la syntaxe correcte de mysql_fetch_array c'est @mysql_fetch_array

Coldfusion
19/02/2004, 18h00
j'ai rajouté le "@"

et voici le message d'erreur :
Parse error: parse error in /usr/local/www/data.users/monsite.com/www/photo3.php on line 14

Il aime pas le @ aparemment...

Sinon, deux questions donc :
- C'est surement con mais quand il met un message d'erreur en mentionnant la ligne 15, pourquoi me faites vous changer la ligne 14 ? Je comprends pas. Cela veut dire que s'il met un message d'erreur sur une ligne , l'erreur peut en fait provenir d'une ligne precedente ? Excusez..c'est la logique que je ne comprends pas.

- Si les variables ne vous sont pas familieres (celles que j'ai pris sur le site php debutant) , comment auriez vous fait alors pour afficher les données de la table ? Il doit y avoir un autre moyen non ?

Merci encore

Foularou
19/02/2004, 18h09
Pas tester mais ca dois etre bon.


$req = mysql_query("select pseudo , mdp , email FROM photo2") or die ('Erreur : '.mysql_error() );
while ($data = @mysql_fetch_array($req))
{
echo "<b>".$data[pseudo]." ".$data[mdp]."</b> ".$data[email]."<br>";
}

Coldfusion
19/02/2004, 18h22
Pas tester mais ca dois etre bon.


$req = mysql_query("select pseudo , mdp , email FROM photo2") or die ('Erreur : '.mysql_error() );
while ($data = @mysql_fetch_array($req))
{
echo "<b>".$data[pseudo]." ".$data[mdp]."</b> ".$data[email]."<br>";
}


merci de ton aide

J'ai remplacé par ton code, j'ai une erreur ligne 12, qui correspond au "{"

Parse error: parse error in /usr/local/www/data.users/monsite.com/www/photo3.php on line 12

Je vous met le fichier source en piece jointe :confused:

Coldfusion
19/02/2004, 18h24
une question encore plus bete que les autres :

si on met un Select *, on prends donc toutes les valeurs
Pourquoi alors faire un "echo" de certaines valeurs si on lui les demande toutes ?

Foularou
19/02/2004, 18h29
1 - Regarde tes MP.
2 - Parce que meme si tu selectionne tous les champs il faut quand meme que tu lui dise a quel endroit afficher le contenu du champ pseudo, email et je c plus koi .

Foularou
19/02/2004, 18h53
Fichier _connexion.php

<?php
// ****** Adresse Ip du serveur ******
$dbhost="localhost";

// ****** Login et password de connexion a la base de données ******
$dbuser="root";
$dbpass="";

// ****** Nom de la base de données ******
$dbbase="test";
?>


Fichier photo3.php


<?
//Chargement fichier de configuration.
require("./_connexion.php");
mysql_connect("$dbhost", "$dbuser", "$dbpass") OR DIE ("Erreur : Pb de connexions."); // Connexion à la base de données
mysql_select_db("$dbbase") OR DIE("Erreur : la base de données n'est pas accessible.");

$result = mysql_query("select pseudo , mdp , email FROM photo2") or die ('Erreur : '.mysql_error() );
while ($data = @mysql_fetch_array($result))
{
echo "<b>".$data['pseudo']." ".$data['mdp']."</b> ".$data['email']."<br>";
}
mysql_close();
?>


Bon ca g tester ca fonctionne. les infos du fichier de configuration c a toi de modifier.
Y avait une erreur d'ESPACE dans les 2 premiers OR DIE (

Pour le reste je n'en c rien mais bon la en theorie ca devrais passer nike.

Coldfusion
19/02/2004, 19h02
je vais devenir dingue !

Toujours une erreur ligne 9 ( "{" )
A n'y rien comprendre...
ma table s'appelle bien "photo2"
mon fichier _connexion.php marche bien puisque l'insertion des données dans la base marche sans probleme

Le php est vraiment pas pour moi je suis désésperé. Meme pas capable d'afficher les données d'une table Mr coldfusion...

Merci à vous tous quand meme

Pitchoune
19/02/2004, 19h19
Bon, maintenant que je suis chez moi, on va revoir tout ça :)

Je crois savoir d'où peux venir l'erreur, de variables non-définies.

Pitchoune
19/02/2004, 19h35
Trouvé, et tout fonctionne !

Sur le modèle du script précédent, voilà ce que tu dois mettre dans ton fichier :

<?php
require('_connexion.php');

$db = @mysql_connect("$dbhost", "$dbuser", "$dbpass") OR DIE("Erreur : la base de données n'existe pas.");
@mysql_select_db("$dbbase",$db) OR DIE("Erreur : la base de données n'est pas accessible.");

$sql = "SELECT * FROM $table";
$req = mysql_query($sql) OR DIE('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

while ($data = mysql_fetch_array($req))
{
$data['$pseudo'] = stripslashes($pseudo);
$data['$mdp'] = stripslashes($mdp);
$data['$email'] = stripslashes($email);

echo "<b>" . $data['pseudo'] . " " . $data['mdp'] . "</b> " . $data['email'] . " ";
}

@mysql_close();
?>

Coldfusion
19/02/2004, 20h23
lol
merci de prendre le relais !

j'ai copié collé, uploadé...et ... erreur ligne 12

Celle-ci :

$data['$pseudo'] = stripslashes($pseudo);

Coldfusion
19/02/2004, 20h26
ci joint un screen montrant que ma table est bien sur ma DB (phpmyadmin 2.5.3)

Pitchoune
19/02/2004, 20h26
Tu dois avoir un soucis quelque part, il fonctionne parfaitement.

Coldfusion
19/02/2004, 20h29
Tu dois avoir un soucis quelque part, il fonctionne parfaitement.

voici mon _connexion.php

<?php

$dbhost = 'mysql.oxyd.fr'; // Renseigne ici l'adresse de la base de données (sans http://)
$dbuser = 'user_2538'; // Renseigne ici le nom d'utilisateur pour te connecter à la base de données
$dbpass = 'monpassword'; // Renseigne ici le mot de passe pour te connecter à la base de données
$dbbase = 'user_2538'; // Renseigne ici le nom de la table de la base de données
$table = 'photo2'; // Reiseigne ici le nom de la table que tu as crée de "Instructions.txt"

// ##################################################
// ########## Pas toucher à partir d'ici ! ##########
// ##################################################

function verif_email($email)
{
if (ereg("^.+@.+\\..+$",$email))
{
return 1;
}
else
{
return 0;
}
}
?>

Pitchoune
19/02/2004, 20h33
Attends, je vais joindre ce que j'ai et qui fonctionne, j'expliquerais ce qui se trouve dedans :)

Coldfusion
19/02/2004, 20h38
ok merci beaucoup beaucoup...

Pitchoune
19/02/2004, 20h44
Voilà, testes ça, tout devrait passer (en tout cas, chez moi, tout est ok) :)

Coldfusion
19/02/2004, 21h38
CA MARCHE !!!!!

Merci beaucoup !!!!!!!!!!!!!

Deux coupes pour te remercier :

:062:

Pitchoune
19/02/2004, 21h43
:D Je t'avais bien dit qu'il marchait ;)

Je sais pas du tout d'où venait l'erreur mais maintenant, il marche :)

Foularou
20/02/2004, 09h11
Bah le mien aussi il marchais enfin du moins sur les test que g fait.

Coldfusion
20/02/2004, 13h18
Bah le mien aussi il marchais enfin du moins sur les test que g fait.

j'en suis persuadé !
Sauf qu'avec moi...ca marchait pas.
C'est à n'y rien comprendre mais bon... :004:

Foularou
23/02/2004, 08h40
en fait je pense que c parce que tu as des apostrophes dans tes occurences. Chose que je n'avais pas pris en compte.