Bonjour, ma page index.php ne se charge pas lorsque que j’ajoute la ligne
mysql_connect(‘localhost’,‘root’,’’);
il me dit Connexion réinitialisée, si je met mysql_connect(hdfghjdf’,‘root’,’’); la page se charge mais évidemment avec les erreur de connexion qui vont avec, mais la page se charge alors que si je met localhost ça plante complètement. :s quelqu’un aurait une idée ?
j’ai wampserveur 2.0, j’ai accès au panneau phpmyadmin, j’ai créée des tables etc
[Thu Nov 19 22:50:46 2009] [error] [client 127.0.0.1] PHP Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\htdocs\index.php on line 78, referer: localhost…
[Thu Nov 19 22:50:48 2009] [notice] Parent: child process exited with status 255 – Restarting.
[Thu Nov 19 22:50:48 2009] [notice] Apache/2.2.11 (Win32) PHP/5.3.0 configured – resuming normal operations
[Thu Nov 19 22:50:48 2009] [notice] Server built: Dec 10 2008 00:10:06
[Thu Nov 19 22:50:48 2009] [notice] Parent: Created child process 860
[Thu Nov 19 22:50:48 2009] [notice] Child 860: Child process is running
[Thu Nov 19 22:50:48 2009] [notice] Child 860: Acquired the start mutex.
[Thu Nov 19 22:50:48 2009] [notice] Child 860: Starting 64 worker threads.
[Thu Nov 19 22:50:48 2009] [notice] Child 860: Starting thread to listen on port 80.
[Thu Nov 19 22:50:49 2009] [error] [client 127.0.0.1] PHP Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\htdocs\index.php on line 78, referer: localhost…
[Thu Nov 19 22:50:49 2009] [notice] Parent: child process exited with status 255 – Restarting.
[Thu Nov 19 22:50:49 2009] [notice] Apache/2.2.11 (Win32) PHP/5.3.0 configured – resuming normal operations
[Thu Nov 19 22:50:49 2009] [notice] Server built: Dec 10 2008 00:10:06
[Thu Nov 19 22:50:49 2009] [notice] Parent: Created child process 1852
[Thu Nov 19 22:50:49 2009] [notice] Child 1852: Child process is running
[Thu Nov 19 22:50:49 2009] [notice] Child 1852: Acquired the start mutex.
[Thu Nov 19 22:50:49 2009] [notice] Child 1852: Starting 64 worker threads.
[Thu Nov 19 22:50:49 2009] [notice] Child 1852: Starting thread to listen on port 80.
donc apparament ce serai pas du au mysql_connect() mais a un mysql fetch array plus loin… ^^ je regarde ca et je vous dit quoi
EDIT : alors, voici le code ligne 78 :
<?php
$prod=mysql_query("SELECT * FROM Produit ORDER BY val_promo DESC LIMIT 0,5");
$ok=true;
while($prod1=mysql_fetch_array($prod))
{
echo"<div ";
if ($ok){echo"id=\"glisse1\" "; $ok=false;}
echo"class=\"glisse\"><h1>".$prod1["ref_prod"]."</h1><p>".$prod1["desc_prod"]."</p><a href=\"".RACINE."Afficher/produit.php?".$prod1["ref_prod"]."\"><img src=\"".$prod1["image"]."\" alt=\"voir ce produit\"/></a></div>";
}
?>
sur un serveur sur le net, ce même code fonctionne, mais c’est pour les cours et le prof vas tester en local.
donc la je pense que le while fait une boucle infinie. mais pourquoi ?! :s
EDIT 2 : ce n’est pas une boucle infinie, j’ai rajouter un compteur de passage dans la boucle en rajoutant compteur<6 en condition d’entrée de boucle, mais ca ne marche toujours pas
pour mysqli_* , je connais pas, ca change quoi au juste ??
Edité le 19/11/2009 à 23:10
Disons que ton erreur, c’est surtout une erreur genre tu as killé la thread PHP chargé d’envoyer tes pages. Un simple problème de connexion au serveur ne fait pas ça.
Tu n’as pas une boucle infinie, du moins je ne pense pas - même si l’erreur est symptomatique -
En revanche, ton code est “faux”, ça devrait être :
<?php
if (false === ($prod=mysql_query("SELECT * FROM Produit ORDER BY val_promo DESC LIMIT 0,5"))) {
exit('problème requête mysql_query() : ' . mysql_error());
}
$ok=true;
while(false !== ($prod1=mysql_fetch_array($prod)))
{
echo"<div ";
if ($ok){echo"id=\"glisse1\" "; $ok=false;}
echo"class=\"glisse\"><h1>".$prod1["ref_prod"]."</h1><p>".$prod1["desc_prod"]."</p><a href=\"".RACINE."Afficher/produit.php?".$prod1["ref_prod"]."\"><img src=\"".$prod1["image"]."\" alt=\"voir ce produit\"/></a></div>";
}
?>
La subtile nuance c’est que si ta requête plante, tu le sauras.
ok ben c’est ce que j’avais à la base et ca ne marche pas, de plus le code marchait sur un serveur, et meme les pages autre que index.php ne fonctionnent pas si je met su mysql :s
je viens de tester la console MySQL et tout fonctionne niquel…
quand je fais :
if(mysql_connect('localhost','root',''))
{
echo "ok";
}
else
{
//reste de la page
}
ca affiche bien ok, donc on a bien accès a la base de donnée.
quand je met la boucle while en commentaire ca bug quand meme
et le log d’appache contient ca :
[Fri Nov 20 12:48:55 2009] [notice] Apache/2.2.11 (Win32) PHP/5.3.0 configured -- resuming normal operations
[Fri Nov 20 12:48:55 2009] [notice] Server built: Dec 10 2008 00:10:06
[Fri Nov 20 12:48:55 2009] [notice] Parent: Created child process 3424
[Fri Nov 20 12:48:55 2009] [notice] Child 3424: Child process is running
[Fri Nov 20 12:48:55 2009] [notice] Child 3424: Acquired the start mutex.
[Fri Nov 20 12:48:55 2009] [notice] Child 3424: Starting 64 worker threads.
[Fri Nov 20 12:48:55 2009] [notice] Child 3424: Starting thread to listen on port 80.
[Fri Nov 20 12:49:03 2009] [notice] Parent: child process exited with status 255 -- Restarting.
[Fri Nov 20 12:49:03 2009] [notice] Apache/2.2.11 (Win32) PHP/5.3.0 configured -- resuming normal operations
[Fri Nov 20 12:49:03 2009] [notice] Server built: Dec 10 2008 00:10:06
[Fri Nov 20 12:49:03 2009] [notice] Parent: Created child process 1504
[Fri Nov 20 12:49:03 2009] [notice] Child 1504: Child process is running
[Fri Nov 20 12:49:03 2009] [notice] Child 1504: Acquired the start mutex.
[Fri Nov 20 12:49:03 2009] [notice] Child 1504: Starting 64 worker threads.
[Fri Nov 20 12:49:03 2009] [notice] Child 1504: Starting thread to listen on port 80.
ben c’est le mysql_close, je l’ai remis ailleurs replantage :s
"L'utilisation de mysql_close n'est pas habituellement nécessaire, puisque les connexions non persistantes ouverts sont automatiquement fermées à la fin l'exécution du script." donc au pire j'en met pas et voila ^^
je pense parce que c’est appache qui ferme automatiquement la connexion mysql et qu’on lui dit de le faire en même temps sinon ej sais pas, mais j’en met pas moi comme ca je suis tranquille puisqu’il le fait tout seul à la fin du script