Page 1 sur 1

un tuto qui ne marche pas

Posté : 28 janv. 2008, 16:41
par Incisive
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]

Re: un tuto qui ne marche pas

Posté : 28 janv. 2008, 16:55
par d0m
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?

Posté : 28 janv. 2008, 17:46
par Incisive
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]

Posté : 28 janv. 2008, 17:51
par d0m
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; 

Posté : 28 janv. 2008, 17:56
par Incisive
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]

Posté : 28 janv. 2008, 20:05
par iclo
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

Posté : 29 janv. 2008, 10:33
par Incisive
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]

Posté : 29 janv. 2008, 10:43
par d0m
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());
....

Posté : 29 janv. 2008, 11:54
par Incisive
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 ?

Posté : 29 janv. 2008, 11:57
par Berzemus
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:

Posté : 29 janv. 2008, 12:03
par Incisive
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]

Posté : 29 janv. 2008, 12:05
par d0m
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

Posté : 29 janv. 2008, 12:15
par Incisive
: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:

Posté : 29 janv. 2008, 12:28
par iclo
Normalement, PhpMyAdmin est déja inclus dans easyPhp.