Php site perso chez free; pb accès à la BD
Résolu
letyz12
-
letyz12 -
letyz12 -
Bonjour,
Je renouvelle ma demande d'aide :
J'ai réalisé un petit site perso que j'ai mis en ligne chez free : transfert de mes fichiers (via filezilla), transfert également de ma BD; Tout à l'air ok.
La page d'accueil se charge bien; des liens également de page à page se font bien.
Mais ya un bug dès qu'il y a appel à la BD, du moins lorsqu'il y a lecture de résultats après exécution de requetes.
Mais c'est bizarre car cela le fait pas pour tout les appels à la BD, dans certains cas cela marche.
voici des messages d'erreur reçus :
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /mnt/102/sdb/c/4/letyz12/vis/vis_resultat.php on line 32
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /mnt/102/sdb/c/4/letyz12/vis/vis_resultat.php on line 44
Et voici mon code correspondant :
//aucune critère spécifié, on affiche donc tous les restaurants de la base de données
$select="SELECT count(nom) FROM restaurants";
$result = mysql_query($select);
$row = mysql_fetch_row($result);
$nb = $row[0];
$rqt = "SELECT nom, adresse, telephone, site_web, nom_image, commentaires, cuisine, prix, avis_fav, avis_defav FROM restaurants ORDER BY nom";
$exec = mysql_query($rqt);
if ($nb=='0') { echo "<center><h2>Aucun restaurant n'a été trouvé</h2></center>";}
if ($nb=='1'){ echo "<center><h2>$nb restaurant a été trouvé</h2></center>"; }
if ($nb>='2') { echo "<center><h2>$nb restaurants ont été trouvés</h2></center>"; }
echo "<table>";
while ($courant=mysql_fetch_object($exec)){
$total_avis = $courant->avis_fav+$courant->avis_defav;
echo "<tr><td><img src=../images/$courant->nom_image></td><td><b>$courant->nom</b> - $courant->adresse<br>$courant->telephone - $courant->site_web<br>Type : $courant->cuisine - Fourchette prix : $courant->prix<br>$courant->commentaires<br><br><font color='blue'>$total_avis avis déposé(s)<br>$courant->avis_fav avis favorable(s) et $courant->avis_defav avis défavorable(s)</font></td><td>Appréciez-vous ce restaurant?<br><form name=rep method=post action=val_avis.php>
<input type=\"hidden\" value=\"$courant->nom\" name=\"nom\">
<p>
<label>
<input type=radio name=rep value=OUI>
OUI</label>
<br>
<label>
<input type=radio name=rep value=NON>
NON</label>
<br>
</p>
<input type=submit value=VOTER>
</form></td></tr>"; }
echo "</table>";
}
Merci.
Je renouvelle ma demande d'aide :
J'ai réalisé un petit site perso que j'ai mis en ligne chez free : transfert de mes fichiers (via filezilla), transfert également de ma BD; Tout à l'air ok.
La page d'accueil se charge bien; des liens également de page à page se font bien.
Mais ya un bug dès qu'il y a appel à la BD, du moins lorsqu'il y a lecture de résultats après exécution de requetes.
Mais c'est bizarre car cela le fait pas pour tout les appels à la BD, dans certains cas cela marche.
voici des messages d'erreur reçus :
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /mnt/102/sdb/c/4/letyz12/vis/vis_resultat.php on line 32
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /mnt/102/sdb/c/4/letyz12/vis/vis_resultat.php on line 44
Et voici mon code correspondant :
//aucune critère spécifié, on affiche donc tous les restaurants de la base de données
$select="SELECT count(nom) FROM restaurants";
$result = mysql_query($select);
$row = mysql_fetch_row($result);
$nb = $row[0];
$rqt = "SELECT nom, adresse, telephone, site_web, nom_image, commentaires, cuisine, prix, avis_fav, avis_defav FROM restaurants ORDER BY nom";
$exec = mysql_query($rqt);
if ($nb=='0') { echo "<center><h2>Aucun restaurant n'a été trouvé</h2></center>";}
if ($nb=='1'){ echo "<center><h2>$nb restaurant a été trouvé</h2></center>"; }
if ($nb>='2') { echo "<center><h2>$nb restaurants ont été trouvés</h2></center>"; }
echo "<table>";
while ($courant=mysql_fetch_object($exec)){
$total_avis = $courant->avis_fav+$courant->avis_defav;
echo "<tr><td><img src=../images/$courant->nom_image></td><td><b>$courant->nom</b> - $courant->adresse<br>$courant->telephone - $courant->site_web<br>Type : $courant->cuisine - Fourchette prix : $courant->prix<br>$courant->commentaires<br><br><font color='blue'>$total_avis avis déposé(s)<br>$courant->avis_fav avis favorable(s) et $courant->avis_defav avis défavorable(s)</font></td><td>Appréciez-vous ce restaurant?<br><form name=rep method=post action=val_avis.php>
<input type=\"hidden\" value=\"$courant->nom\" name=\"nom\">
<p>
<label>
<input type=radio name=rep value=OUI>
OUI</label>
<br>
<label>
<input type=radio name=rep value=NON>
NON</label>
<br>
</p>
<input type=submit value=VOTER>
</form></td></tr>"; }
echo "</table>";
}
Merci.
A voir également:
- Php site perso chez free; pb accès à la BD
- Site de telechargement - Accueil - Outils
- Site comme coco - Accueil - Réseaux sociaux
- Quel site remplace coco - Accueil - Réseaux sociaux
- Acces rapide - Guide
- Site pour vendre des objets d'occasion - Guide
5 réponses
Pour commencer, met ton code entre balises , ca simplifie la lecture.
Ensuite,
Ton code est entier ? Si oui, il faut dabord que tu te connectes à ta BD.
Ensuite,
$select="SELECT count(nom) FROM restaurants"; $result = mysql_query($select); $row = mysql_fetch_row($result); $nb = $row[0];
Ton code est entier ? Si oui, il faut dabord que tu te connectes à ta BD.
Bonjour
Si ça marchait en local, ça peut être un problème de casse : ta table s'appelle-t-elle bien restaurants en minuscules ?
Quelle que soit l'erreur, tu auras des précisions en affichant le message d'erreur :
$result = mysql_query($select) or die (mysql_error());
Si ça marchait en local, ça peut être un problème de casse : ta table s'appelle-t-elle bien restaurants en minuscules ?
Quelle que soit l'erreur, tu auras des précisions en affichant le message d'erreur :
$result = mysql_query($select) or die (mysql_error());
oui ma table s'écrit ien comme ça, il n'y a pas d'erreur de casse.
En retestant apres modif, il me sort cette erreur :
Impossible de se connecter
Je ne comprend pas trop; voici la structure de mon fichier connecter.phph, qui doit se connecter à ma base :
En retestant apres modif, il me sort cette erreur :
Impossible de se connecter
Je ne comprend pas trop; voici la structure de mon fichier connecter.phph, qui doit se connecter à ma base :
<?php /* Fichier connecter.php ici les parametres pour la connexion 1)pour connexion Distante sur serveur MYSQL de free ---------------------------------------------------- $serveur="sql.free.fr"; $utilisateur ="webprogression"; //chez free l'utilisateur et la base ont le meme nom $passe="Votre mot de passe de chez free"; $base="webprogression"; 2)pour connexion Locale sur serveur MYSQL de ma machine -------------------------------------------------------- $serveur="localhost"; $utilisateur ="root"; $passe=""; $base="webprogression"; */ # FileName="Connection_php_mysql.htm" # Type="MYSQL" # HTTP="true" $hostname_connecter = "sql.free.fr"; $database_connecter = "moi"; $username_connecter = "moi"; $password_connecter = "monpass"; //effectuer la connexion à MYSQL $link = mysql_connect("$serveur","$utilisateur","$passe") or die ("Impossible de se connecter").mysql_error(); //sélectionner la base de données de Mysql (locale ou distante) mysql_select_db ("$base") or die ("Impossible d'accéder à la base de données"); ?>
mysql_connect("$serveur","$utilisateur","$passe")
où les variables $serveur, etc sont-elles initialisées ? Celles que tu initialises s'appellent $hostname_connecter, etc..
D'ailleurs (mais ça n'est pas ça qui empêche de marcher) à quoi peuvent bien servir les guillemets autour de "$serveur", "$utilisateur" et "$passe" ???
où les variables $serveur, etc sont-elles initialisées ? Celles que tu initialises s'appellent $hostname_connecter, etc..
D'ailleurs (mais ça n'est pas ça qui empêche de marcher) à quoi peuvent bien servir les guillemets autour de "$serveur", "$utilisateur" et "$passe" ???
Ca s'est arrangé; c'était en effet un souci de nom de variable!
Donc là je vois qu'il se conencte bien à ma base de données.
par contre, il y a toujours un souci avec l'exécution de requetes à certains moments :
Erreur :
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /mnt/102/sdb/c/4/letyz12/vis/vis_resultat.php on line 276
Voici une aprtie du code ou cela plante par ex :
$select="SELECT count (nom) FROM restaurants WHERE nom LIKE '%$nom%' AND cuisine= \"$cuisine\"";
$result = mysql_query($select);
$row = mysql_fetch_row($result);
$nb = $row[0];
Peut-etre ya til un souci de ' ou " dans ma requete ?
Donc là je vois qu'il se conencte bien à ma base de données.
par contre, il y a toujours un souci avec l'exécution de requetes à certains moments :
Erreur :
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /mnt/102/sdb/c/4/letyz12/vis/vis_resultat.php on line 276
Voici une aprtie du code ou cela plante par ex :
$select="SELECT count (nom) FROM restaurants WHERE nom LIKE '%$nom%' AND cuisine= \"$cuisine\"";
$result = mysql_query($select);
$row = mysql_fetch_row($result);
$nb = $row[0];
Peut-etre ya til un souci de ' ou " dans ma requete ?
En essayant le $result = mysql_query($select) or die (mysql_error()); ,
Il me sort : FUNCTION letyz12.count does not exist
C'est bizarre; j'explique vite fait comment fonctionne ma page :
En fait, l'utilisateur peut rechercher des restaurants par le nom (saisie manuelle dans une zone de texte) ET/OU par un type de cuisine (sélection dans une zone de liste) ET/OU par prix (également sélection dans une zone de liste)
Bizarrement, ya un souci dès que le nom tapée par l'utilisateur, s'il y en a un, entre en jeu.
Sinon,cela marche bien.
Il me sort : FUNCTION letyz12.count does not exist
C'est bizarre; j'explique vite fait comment fonctionne ma page :
En fait, l'utilisateur peut rechercher des restaurants par le nom (saisie manuelle dans une zone de texte) ET/OU par un type de cuisine (sélection dans une zone de liste) ET/OU par prix (également sélection dans une zone de liste)
Bizarrement, ya un souci dès que le nom tapée par l'utilisateur, s'il y en a un, entre en jeu.
Sinon,cela marche bien.
c'est bon je viens de trouver la solution :
en fait, j'écrivais select count (nom) avec un espace entre "count" et (nom) alors qu'il n'en faut pas..
Cependant, décidément, j'en aurais vu, un autre problème est présent.
Sur mon site, il y aune zone dite "Accès membre" ou l'on peut se connecter avec un nom d'uilisateur et un mot de passe.
Voici l'erreur affichée lorsque je me connecte (a fortiori normalement correctement):
Warning: main() [function.main]: open_basedir restriction in effect. File(../connecter.php) is not within the allowed path(s): (/mnt/102/sdb/c/4/letyz12) in /mnt/102/sdb/c/4/letyz12/fct/fct_menu.inc.php on line 3
Warning: main(../connecter.php) [function.main]: failed to open stream: Operation not permitted in /mnt/102/sdb/c/4/letyz12/fct/fct_menu.inc.php on line 3
Fatal error: main() [function.require]: Failed opening required '../connecter.php' (include_path='/mnt/102/sdb/c/4/letyz12/include:.:/usr/php4/lib/php') in /mnt/102/sdb/c/4/letyz12/fct/fct_menu.inc.php on line 3
Voici le fichier fct_menu.inc.php dont il est question :
L'erreur a vraisemblablement lieu au require (../connecter.php); l'appel me semble prtant bon, identique aux autres..
en fait, j'écrivais select count (nom) avec un espace entre "count" et (nom) alors qu'il n'en faut pas..
Cependant, décidément, j'en aurais vu, un autre problème est présent.
Sur mon site, il y aune zone dite "Accès membre" ou l'on peut se connecter avec un nom d'uilisateur et un mot de passe.
Voici l'erreur affichée lorsque je me connecte (a fortiori normalement correctement):
Warning: main() [function.main]: open_basedir restriction in effect. File(../connecter.php) is not within the allowed path(s): (/mnt/102/sdb/c/4/letyz12) in /mnt/102/sdb/c/4/letyz12/fct/fct_menu.inc.php on line 3
Warning: main(../connecter.php) [function.main]: failed to open stream: Operation not permitted in /mnt/102/sdb/c/4/letyz12/fct/fct_menu.inc.php on line 3
Fatal error: main() [function.require]: Failed opening required '../connecter.php' (include_path='/mnt/102/sdb/c/4/letyz12/include:.:/usr/php4/lib/php') in /mnt/102/sdb/c/4/letyz12/fct/fct_menu.inc.php on line 3
Voici le fichier fct_menu.inc.php dont il est question :
<?php session_start(); ?> <?php require("../connecter.php"); /********************************************************************************************/ function verif ($log, $pwd, $droit) { $rqt = "SELECT droit FROM profils WHERE login ='$log' AND pass='$pwd'"; $res = mysql_query($rqt); $profil_courant = mysql_fetch_object($res); $droit=$profil_courant->droit; return $droit; } function menu_admin () { echo " <table> <tr> <td class=\"td25\"></td> <td class=\"td75\"><a href=../admin/profils.php>Gestion des profils</a><br></td> </tr> </table>"; } /***************************************************************************************************************************/ function menu_sec () { echo " <table> <tr> <td class=\"td25\"></td> <td class=\"td75\"><a href=../sec/sec_profils.php>Les profils</a><br></td> </tr> <tr> <td class=\"td25\"></td> <td class=\"td75\"><br></td> </tr> <tr> <td class=\"td25\"></td> <td class=\"td75\"><a href=../sec/messages.php>Gestion des messages du livre d 'or</a><br></td> </tr> <tr> <td class=\"td25\"></td> <td class=\"td75\"><br></td> </tr> </table>"; } /***************************************************************************************************************************/ function menu_adh () { echo " <table> <tr> <td class=\"td25\"></td> <td class=\"td75\"><a href=../adh/adh_profils.php>Les profils</a><br></td> </tr> <tr> <td class=\"td25\"></td> <td class=\"td75\"><br></td> </tr> <tr> <td class=\"td25\"></td> <td class=\"td75\"><a href=../adh/restaurants.php>Gestion des restaurants</a><br></td> </tr> <tr> <td class=\"td25\"></td> <td class=\"td75\"><br></td> </tr> </table>"; } /***************************************************************************************************************************/ function menu_vis () { echo " <table> <tr> <td class=\"td25\"></td> <td class=\"td75\"><a href=../vis/vis_rech.php>Rechercher un restaurant</a><br></td> </tr> <tr> <td class=\"td25\"></td> <td class=\"td75\"><br></td> </tr> <tr> <td class=\"td25\"></td> <td class=\"td75\"><a href=../vis/vis_livre_or.php>Livre d'or</a><br></td> </tr> <tr> <td class=\"td25\"></td> <td class=\"td75\"><br></td> </tr> </table>"; } ?>
L'erreur a vraisemblablement lieu au require (../connecter.php); l'appel me semble prtant bon, identique aux autres..
Avec un nom comme ça, fct_menu.inc.php est sûrement un fichier inclus.
Dans ce cas, le répertoire courant est celui du script, c'est à dire du fichier principal, pas celui de fct_menu.inc.php.
Si ce fichier est à la base de ton site, pour inclure connecter.php, comme ils sont dans le même répertoire, il faut faire simplement require("connecter.php"), pas require("../connecter.php"). Même si le require, lui, se trouve dans un fichier qui est dans un sous-répertoire.
Dans ce cas, le répertoire courant est celui du script, c'est à dire du fichier principal, pas celui de fct_menu.inc.php.
Si ce fichier est à la base de ton site, pour inclure connecter.php, comme ils sont dans le même répertoire, il faut faire simplement require("connecter.php"), pas require("../connecter.php"). Même si le require, lui, se trouve dans un fichier qui est dans un sous-répertoire.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mon fichier fct_menu.inc.php est bien un fichier que j'inclue e til n'est pas direct sous laracine du site mais dans un sous-repertoire
malgré des améliorations, ya toujours des bugs; le mieux est que je mette tous mes fichiers sous la racine du site et modifie mes appels aux pages.
Je vais voir ce que cela donne.
malgré des améliorations, ya toujours des bugs; le mieux est que je mette tous mes fichiers sous la racine du site et modifie mes appels aux pages.
Je vais voir ce que cela donne.
voici une partie du code avec en gras les lignes ou ça plante :