Probleme avec chatbox

Résolu/Fermé
LeaDerzRS6 Messages postés 55 Date d'inscription mercredi 2 juillet 2014 Statut Membre Dernière intervention 23 octobre 2016 - 24 juil. 2016 à 14:07
LeaDerzRS6 Messages postés 55 Date d'inscription mercredi 2 juillet 2014 Statut Membre Dernière intervention 23 octobre 2016 - 24 juil. 2016 à 18:43
Bonjour j'ai coder ma chatbox mais une erreur s'affiche dans mon div ou les messages devrai s'y mettre ( les messages sont rediriger dans la bdd que j'ai relier )
//function recup bdd

function recup_msg(){
	
	$.post('pages/recup_msg.php',function(data){
		
		$('.chatbox .messages').html(data);
		
	});	
	
}

setInterval(recup_msg,2000);
recup_msg();

//function envoyais donner vers bdd

function envoi_msg(){
	
	$('.chatbox .entree').keyup(function(e){
		
		var messages = $('.chatbox .entree').val();
		messages = $.trim(messages);
		
		if(messages !=="" && e.keyCode ===13 && e.shiftKey === false){
			
			$.post('envoi_msg.php',{messages:messages},function(){
			recup_msg();
			$('.chatbox .entree').val('');
				
			});
			
			
		}
	});
	
}


mais mon erreur vien de cette page la
<?php
require('connect.php');

$query = $connect->query("
SELECT
messages_chatbox.id,
messages_chatbox.message_membre,
utilisateurs.id,
utilisateurs.pseudo,
FROM messages_chatbox
INNER JOIN utilisateurs ON utilisateurs.id = messages_chatbox.id
ORDER BY temps DESC
");
$messages = array();
while($rows = $query->fetch()){

$messages[] = $rows;

}
foreach ($messages as $message){ ?>

<a href='#' rel="nofollow" target="_blank"><?php echo $message['pseudo']; ?></a>
<p><?php echo $message['message_membre']; ?></p>

<?php
}
?>

et dans le div il y a ecrit = Fatal error: Call to a member function query() on resource in C:\xampp\htdocs\rs\pages\recup_msg.php on line 4

Merci
cordialement

4 réponses

Utilisateur anonyme
24 juil. 2016 à 15:50
Bonjour

A priori, tu as une erreur PHP, je ne sais pas ce que ta question fait dans la rubrique javascript.
Tu n'utilises pas correctement ta connexion à la base de données : d'après le message, c'est une ressource, et toi tu l'utilises comme un objet.
Peux tu montrer ton connect.php ? En cachant tes identifiants, évidemment.
0
LeaDerzRS6 Messages postés 55 Date d'inscription mercredi 2 juillet 2014 Statut Membre Dernière intervention 23 octobre 2016
24 juil. 2016 à 16:51
<?php

session_start();
$connect = mysql_connect('localhost','root','') or die ('erreur de connexion');
mysql_select_db('sy5aip37ra8s3t6597p3') or die ('erreur de connexion base');
mysql_query('SET NAMES utf8');
?>
0
Utilisateur anonyme
24 juil. 2016 à 17:12
Tu fais une utilisation incorrecte de mysql.
Il existe plusieurs interfaces pour utiliser mysql avec PHP, et tu en mélanges plusieurs. Tu te connectes avec l'ancienne bibliothèque mysql, dont l'utilisation est aujourd'hui fortement déconseillée, puis tu utilises cette connexion comme un objet PDO.
Il faut te connecter avec l'interface PDO :

  $host='localhost';
  $nombase='sy5aip37ra8s3t6597p3';
  $user='root';
  $pass='';

  try {
    $connect = new PDO("mysql:host=$host;dbname=$nombase", $user, $pass,
           array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET NAMES utf8"));
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

  }
  catch (PDOException $e) {
    print "Erreur ! : " . $e->getMessage() . "<br/>";
    die();
  }

Après ça, ton $query = $connect->query(... a plus de chances de marcher.
Remarque : j'ai mis dans cet exemple de connexion mes options habituelles, mais ce sont des options, à toi de voir tes besoins.
https://www.php.net/manual/fr/ref.pdo-mysql.php
0
LeaDerzRS6 Messages postés 55 Date d'inscription mercredi 2 juillet 2014 Statut Membre Dernière intervention 23 octobre 2016
Modifié par LeaDerzRS6 le 24/07/2016 à 17:23
oui merci desoler mais je change pas trop mais habitude tout mes connect sont comme sa ^^ et maintenant cela met une autre erreur dans mon while

Fatal error: Call to a member function fetch() on boolean in C:\xampp\htdocs\rs\pages\recup_msg.php on line 28

<?php
 $host='localhost';
  $nombase='sy5aip37ra8s3t6597p3';
  $user='root';
  $pass='';

  try {
    $connect = new PDO("mysql:host=$host;dbname=$nombase", $user, $pass,
           array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET NAMES utf8"));

  }
  catch (PDOException $e) {
    print "Erreur ! : " . $e->getMessage() . "<br/>";
    die();
  }

$query = $connect->query("
SELECT 
messages_chatbox.id,
messages_chatbox.message_membre,
utilisateurs.id,
utilisateurs.pseudo,
FROM messages_chatbox
INNER JOIN utilisateurs ON utilisateurs.id = messages_chatbox.id
ORDER BY temps DESC
");
$messages = array();
while($rows = $query->fetch()){   //ligne 28
 
 $messages[] = $rows;
  
}
foreach ($messages as $message){ ?>
 
 <a href='#' rel="nofollow" target="_blank"><?php echo $message['pseudo']; ?></a>
 <p><?php echo nl2br($message['message_membre']); ?></p>
 
 <?php
}
?>
0
Utilisateur anonyme
24 juil. 2016 à 17:48
tout mes connect sont comme sa : Alors, ce sont tes query qui ne sont pas comme ça, les deux sont absolument incompatibles.

Je m'aperçois que j'ai mal modifié mon script quand je te l'ai donné. Il fallait mettre $connect->setAttribute au lieu de $pdo->setAttribute.

Pour voir ton erreur, remet
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Ça ne va pas la corriger, mais ça devrait te dire ce qui ne va pas.
0
LeaDerzRS6 Messages postés 55 Date d'inscription mercredi 2 juillet 2014 Statut Membre Dernière intervention 23 octobre 2016
24 juil. 2016 à 17:51
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FROM messages_chatbox INNER JOIN utilisateurs ON utilisateurs.id = messages_cha' at line 6' in C:\xampp\htdocs\rs\pages\recup_msg.php:28 Stack trace: #0 C:\xampp\htdocs\rs\pages\recup_msg.php(28): PDO->query('\r\nSELECT \r\nmess...') #1 {main} thrown in C:\xampp\htdocs\rs\pages\recup_msg.php on line 


premiere fois que cela me met cette erreur je suis un peu perdu pour juste crée ma chat box :/
0
Utilisateur anonyme
24 juil. 2016 à 18:07
C'est la première fois que ça te le fait ? pour "juste" créer une chat box
Cesse de parler comme si tu avais l'habitude, car visiblement tu ne l'as pas. Il n'y a pas de honte à débuter.

Si ça te fait ça, ce n'est pas parce que le sort s'acharne contre toi, c'est parce que tu fais des erreurs. En l'occurrence, tu as une virgule en trop avant le FROM.
0
LeaDerzRS6 Messages postés 55 Date d'inscription mercredi 2 juillet 2014 Statut Membre Dernière intervention 23 octobre 2016
24 juil. 2016 à 18:10
waw excuse moi mais je ne voulais pas te faire comprendre sa juste je code de temps en temps pour m’améliorer etc peut être j'ai le niveau d'un débutant je ne sur estime pas mais merci beaucoup de m'avoir aider j'ai trouver ma faute et cela fonctionne niquel :)
Merci aussi d'avoir prit ton temps pour m'expliquer un peu.
Bonne soirer
0
Utilisateur anonyme > LeaDerzRS6 Messages postés 55 Date d'inscription mercredi 2 juillet 2014 Statut Membre Dernière intervention 23 octobre 2016
24 juil. 2016 à 18:34
Pas de problème.
Bonne soirée à toi aussi et bonne continuation.
0
LeaDerzRS6 Messages postés 55 Date d'inscription mercredi 2 juillet 2014 Statut Membre Dernière intervention 23 octobre 2016
24 juil. 2016 à 18:43
merci
0