Problème SQL.

Résolu
WebLooser Messages postés 65 Statut Membre -  
Autumn`Tears Messages postés 1247 Statut Membre -
Bonjour,
J'ai créé un système de rafraichissement automatique d'une div. Il rafraichit une requête SQL qui sélectionne les 17 derniers messages.
Le problème c'est qu'au lieu de m'afficher les messages ils marque : Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
En revanche si je remet la requête dans ma div et bien cela fonctionne très bien. Où est le problème ?

refresh.js :

function writediv(texte, endroit)
{
document.getElementById(endroit).innerHTML = texte;
}

function afficher()
{

if(texte = file('recup.php')) // Ton fichier à inclure dans la <div>
{
writediv('<p align="left">'+texte+'</p>', 'tchat'); // chat = <div id='chat'>, c'est l'emplacement où tu veux placer ta page
}
}

function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);
}

setInterval('afficher()', 1000); // nombre de milisecondes entre deux rafraichissements : ici 1 seconde


Ma div:
<div id="tchat"></div>


Ma requête SQL :
     <?php
         $sql = "SELECT * FROM messages ORDER BY id DESC LIMIT 17"; //On récupère les 15 derniers messages dans la table Messages de la DataBase.
		 $req = mysql_query($sql) or die(mysql_error());
		 $d = array();
		 while($data = mysql_fetch_assoc($req)){
		     $d[] = $data;
			 }
			 for($i = count($d)-1;$i>=0;$i--)
			 {
			 
		 ?>
                 <p><strong>[<?php echo $d[$i]["date"]; ?>]<?php echo htmlspecialchars($d[$i]["pseudo"]); ?></strong> : <?php echo htmlspecialchars($d[$i]["message"]); ?></p>


		 <?php
		 
		    }
			
         ?>


Merci de votre aide.
A voir également:

3 réponses

Autumn`Tears Messages postés 1247 Statut Membre 145
 
Salut,

Est-ce que dans recup.php tu mets bien la connexion à ta base ? (Je te déconseille d'utiliser mysql au passage et de te tourner vers mysqli, ou pdo, mysql devenant obsolète).
Pour ton formatage en HTML tu peux faire plus simple :


while($data = mysql_fetch_assoc($req))
{
echo '<p><strong>['.$data['date'].'] '.htmlspecialchars($data['pseudo']).' : '.htmlspecialchars($data['message']).'</p>';
}
?>
1
WebLooser Messages postés 65 Statut Membre 7
 
Oui car dans tchat.php j'ai mit:
require('connect.php')
De ce qui est pour faire plus "simple": C'est vrai mais je préfère ma version car je m'y retrouve mieux ^^
0
Autumn`Tears Messages postés 1247 Statut Membre 145
 
D'accord.

Ce qui est étrange est ton erreur MySQL,elle vient plutôt de la connexion qui n'arrive pas à s'effectuer, plutôt que du fait de mettre ton code ici ou là...
Tu arrives à accéder à PhpMyAdmin ?
0
WebLooser Messages postés 65 Statut Membre 7
 
Oui très bien. Sachant que pour arriver sur cette page où il y a un problème SQL, l'utilisateur doit se connecter ! Si tu veux voir:
http://netdead.fr (no spam, no virus, mdp en MD5 pour ceux qui ont peurt ^^)
0
Autumn`Tears Messages postés 1247 Statut Membre 145
 
Fais un test dans un premier temps, après l'inclusion de ton fichier connect.php dans recup, retourne juste un echo 'ok'; par exemple. Essaie aussi dans connect.php de faire un or die(mysql_error()) lors de la connexion à la base
0
WebLooser Messages postés 65 Statut Membre 7
 
L'inclusion de connect.php ne se trouve pas dans recup.php mais se trouve au tout début de la page chat.php...
0
Autumn`Tears Messages postés 1247 Statut Membre 145
 
Inclus ton fichier connect.php au sein de ton fichier recup.php
0
WebLooser Messages postés 65 Statut Membre 7
 
Up
0