un tuto qui ne marche pas

Petit nouveau ! | 7 Messages

28 janv. 2008, 16:41

Hello,
quitte à avoir l'air ridicule, tant pis...
je me suis tout recemment mise à php5, avec un bouquin comme tuto. Mon problème, c'est que je suis bloquée à la moitié : après avoir refait plusieurs fois l'exercice scrupuleusement, les noms des rubriques que j'ai entrés dans la base de donnees ne s'affichent pas sur ma page index...
est ce que je deviens zinzin ? ou peut etre que mon bouquin est-il un peu vieux... pffff

mon erreur paraîtra surement evidente pour un developpeur, mais pour la graphiste que je suis, c'est un sacerdos !

voici mon code :
<?php
$connexion=mysql_connect("localhost","root","");
$db=mysql_query ("CREATE DATABASE monsite");
$db=mysql_select_db("monsite",$connexion);
$tbl=mysql_query ("CREATE TABLE mespages (nompage VARCHAR(40) NOT NULL, adressepage VARCHAR(40) NOT NULL, PRIMARY KEY (nompage))");
$saisie=mysql_query("INSERT INTO mespages(nompage,adressepage) VALUES ('Accueil','accueil.php')");
$saisie=mysql_query("INSERT INTO mespages(nompage,adressepage) VALUES ('Historique','historique.php')");
$saisie=mysql_query("INSERT INTO mespages(nompage,adressepage) VALUES ('Photos','photos.php')");
$saisie=mysql_query("INSERT INTO mespages(nompage,adressepage) VALUES ('Inscription','inscription.php')");
$saisie=mysql_query("INSERT INTO mespages(nompage,adressepage) VALUES ('Email','email.php')");

?>
et celui de ma page index :
<html>
<head><head/>
<body bgcolor="#C0C0C0">
<p align="center"><font size="6" color="#000080">Bienvenue sur mon site</font></p>
<p align="center">

<?php
$connexion=mysql_connect("localhost","root","");
$db=mysql_select_db("monsite",$connexion);
$resultat=mysql_query("select * from mespages",$connexion);
$nb=mysql_num_rows($resultat);
for ($i = 0; $i<$nb ; $i++)
{
$nom=mysql_result($resultat,$i,"nompage");
echo "$nom ";
}
?>
</p>
</html>
si quelqu'un pouvait me dire ce qui cloche, ca m'aiderait beaucoup a avancer !
Merci

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

d0m
Mammouth du PHP | 1141 Messages

28 janv. 2008, 16:55

si quelqu'un pouvait me dire ce qui cloche...
PHP et SQL le peuvent.
Affiche déjà les messages d'erreurs, ca te permet de voir d'où vient le problème :
mysql_query(".....") or die(mysql_error());
Ta base est elle crée et rempli?

Petit nouveau ! | 7 Messages

28 janv. 2008, 17:46

J'ai rajoute la fonction die mais rien ne change a l'affichage... il n'y peut etre pas d'erreur, c'est juste le texte qui ne s'affiche pas.
Pourtant, ma base donnees est effectivement remplie : j'ai mis cinq noms de rubriques.
(je précise, en plus, que je suis un tuto sur un bouquin, donc theoriquement, le truc de neuneu, y'a aucune raison que ca ne marche pas !) :oops:
c'est vraiment la honte !

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

d0m
Mammouth du PHP | 1141 Messages

28 janv. 2008, 17:51

voir déjà si tes résultats sont récupérées en affichant le nombre de résultat:
...
$nb=mysql_num_rows($resultat);
echo 'nb de résultats : '.$nb; 

Petit nouveau ! | 7 Messages

28 janv. 2008, 17:56

Aie Aie Aie : nb de resultats : 0
Bon bah comme ca, je sais ou ca cloche !
J'en conclus, donc, qu'il faut utiliser une autre commande que celle que j'ai utilisée pour les recuperer... pourrais-tu me l'indiquer s'il te plait ? :roll:

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

ViPHP
ViPHP | 2144 Messages

28 janv. 2008, 20:05

Le query sql semble correct (difficile de faire plus simple)
Je dirais que la première chose à faire ce serait de vérifier ce qu'il y a exactement dans la base de donnée, en utilisant par exemple phpMyAdmin

Petit nouveau ! | 7 Messages

29 janv. 2008, 10:33

ouh la, deja que je me debats avec easy php !
Mais ce qui m'etonne c'est que dans mon code, il n'y a rien de plus que ce que j'ai posté : deux documents. Si le code est bon, comment se peut-il que ca ne marche pas ?

J'ai cherche quelquechose de similaire dans les tutos du site mais je n'ai pas trouvé. D'ailleurs si eventuellement quelqu'un pouvait m'en indiquer un..., je pourrais essayer de comparer les deux et trouver d'ou vient le souci.... ?

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

d0m
Mammouth du PHP | 1141 Messages

29 janv. 2008, 10:43

Il vaut mieux installer une appli qui te permet de voir le contenu de ta base comme le disait iclo.
Ce n'est pas parce que tu lui dit de la faire que c'est forcement fait, il peut y avoir des problèmes d'où l'importance de vérifier et des messages d'erreurs.

d'ailleurs les messages d'erreurs sont ils bien activés? pour être sur place cecii au début de ton code :
<?php
ini_set('display_errors','1');
....
et affiches tous les messages d'erreurs SQL, y compris à la connexion :
$connexion=mysql_connect("localhost","root","") or die('erreur connexion :'.mysql_error());
$db=mysql_query ("CREATE DATABASE monsite") or die('erreur creation base :'.mysql_error());
$db=mysql_select_db("monsite",$connexion) or die('erreur selection base :'.mysql_error()); 
$saisie=mysql_query("INSERT INTO mespages(nompage,adressepage) VALUES ('Accueil','accueil.php')") or die('erreur insertion 1'.mysql_error());
....

Petit nouveau ! | 7 Messages

29 janv. 2008, 11:54

Super ! Merci beaucoup pour votre aide et votre patience. Je vais pouvoir reutiliser ces lignes de code à l'avenir, ca me sera surement tres utile.

En attendant d'installer phpmyadmin, j'ai mis les lignes de code en question et voila le message d'erreur qu'il me retourne lorsque je teste la base :
erreur creation base :Ne peut créer la base 'monsite'; elle existe déjà
:shock:

ca voudrait dire que je l'ai appelee deux fois ou quelquechose comme ca ?

ViPHP
ViPHP | 4039 Messages

29 janv. 2008, 11:57

hum.. ta DB perdure à travers le temps, une fois crée elle ne s'efface pas à la fin de ton script (encore heureux)..

Ce n'est sans doute pas la première fois que tu exécutes ton script, donc tu as déjà crée ta DB..

En plus, à ce que je vois en vitesse, tu insères des valeurs avant même d'avoir crée des tableaux ?

Attends vraiment d'avoir installé phpmyadmin pour vraiment comprendre comment fonctionne MySQL.. :wink:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Petit nouveau ! | 7 Messages

29 janv. 2008, 12:03

Mais si ! si je ne me trompe pas, j'ai cree mon tableau avec cette ligne, non ?
$tbl=mysql_query ("CREATE TABLE mespages (nompage VARCHAR(40) NOT NULL, adressepage VARCHAR(40) NOT NULL, PRIMARY KEY (nompage))");
Je vais installer et tout ca et je reviens vers vous après :wink:
Merci ![/php]

d0m
Mammouth du PHP | 1141 Messages

29 janv. 2008, 12:05

Pour ce qui est de l'erreur :
erreur creation base :Ne peut créer la base 'monsite'; elle existe déjà
Un moyen d'éviter cela est de créer la base seulement si celle ci n'existe pas encore.
Il y a une close SQL faite pour ça : [IF NOT EXISTS]

Code : Tout sélectionner

CREATE DATABASE IF NOT EXISTS monsite

Petit nouveau ! | 7 Messages

29 janv. 2008, 12:15

:D
yes j'ai plus ce message, mais un autre est apparu :
erreur insertion 1Champ 'adressepage' inconnu dans field list

(je crois que php doit avoir une dent contre moi !) :twisted:

ViPHP
ViPHP | 2144 Messages

29 janv. 2008, 12:28

Normalement, PhpMyAdmin est déja inclus dans easyPhp.