[RESOLU] problème avec une requête asyncrhone avec ajax

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] problème avec une requête asyncrhone avec ajax

Re: problème avec une requête asyncrhone avec ajax

par moogli » 10 sept. 2012, 17:43

je pensais que comme elle était inclue cela fonctionnerait.

Dire que je suis en train de chercher depuis plusieurs jours.


Merci beaucoup pour ton aide.

heu non ajax.php n'est inclus null part ;)

sinon ce serait trop facile tu ferais un fichier de connexion dans un coin et pis ça démerde tous seul :mrgreen:


@+

Re: [RESOLU] problème avec une requête asyncrhone avec ajax

par Mazarini » 10 sept. 2012, 16:00

Juste pour signaler une erreur de ma part, il faut ajouter le test après le mysql_query(), pas avant... C'est ce qui permet de voir l''erreur sur le mysql-query().

Désolé :oops:

Re: problème avec une requête asyncrhone avec ajax

par piotrowski-s » 10 sept. 2012, 15:40

je pensais que comme elle était inclue cela fonctionnerait.

Dire que je suis en train de chercher depuis plusieurs jours.


Merci beaucoup pour ton aide.

Re: problème avec une requête asyncrhone avec ajax

par moogli » 10 sept. 2012, 15:00

Ta requête Ajax se fait sur le fichier ajax.php.

Pour voir le résultat c'est comme si tu l'appelais depuis le navigateur (htm://tonsite/ajax.php).
Ce fichier n'ayant pas de mysql_connect ça ne peux pas fonctionner !

Tu doit ajouter l'include du fichier contenant la connexion SQL

@+

Re: problème avec une requête asyncrhone avec ajax

par piotrowski-s » 10 sept. 2012, 14:55

<?php 
        $sql="SELECT * FROM `gestionnaire`";
        if (mysql_errno() <> 0) 
        {
            echo mysql_error(),'<br>',$sql,'<br>';
            die();
        } 
        $result=mysql_query($sql);
        while($data=mysql_fetch_assoc($result))
        {
                echo $data['nom'] ;
        }
?>

Re: problème avec une requête asyncrhone avec ajax

par moogli » 10 sept. 2012, 14:11

fait voir le code complet du fichier ajax.php juste ce fichier mais complet ;)

Re: problème avec une requête asyncrhone avec ajax

par piotrowski-s » 10 sept. 2012, 10:44

l'ajax est inclue.

Mais le code de connexion est le suivant:
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_localhost = "127.0.0.1";
$database_localhost = "users";
$username_localhost = "root";
$password_localhost = "";
$localhost = mysql_pconnect($hostname_localhost, $username_localhost, $password_localhost) or trigger_error(mysql_error(),E_USER_ERROR); 
?>

Re: problème avec une requête asyncrhone avec ajax

par moogli » 10 sept. 2012, 10:32

Je suis bien loggué à la BDD dans le header du fichier
du fichier ajax ?

tu ne nous a donc montrer le code complet ?

ton erreur est claire : requête foireuse, mysql_query retourne false, cas que tune traite pas. j'ai dit de virer le die pas ne pas tester s'il ne retourne pas false :)

Montre nous le code complet et réel du fichier ajax.php et en cas d'inclusion indique nous si le fichier réalise la connexion au sgbd.


@+

Re: problème avec une requête asyncrhone avec ajax

par piotrowski-s » 10 sept. 2012, 10:29

ça me renvoi cela: ( ! ) Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\GESTION\ajax.php on line 9

et a la ligne 9 j'ai while($data=mysql_fetch_assoc($result))

Re: problème avec une requête asyncrhone avec ajax

par Mazarini » 10 sept. 2012, 09:24

Il faut vérifier que la requette se passe bien avec mysql_error() ou mysql_errno().
<?php 
        $sql="SELECT * FROM `gestionnaire`";
        if (mysql_errno() <> 0) 
        {
            echo mysql_error(),'<br>',$sql,'<br>';
            die();
        } 
        $result=mysql_query($sql);
        while($data=mysql_fetch_assoc($result))
        {
                echo $data['nom'] ;
        }
?>

Re: problème avec une requête asyncrhone avec ajax

par piotrowski-s » 10 sept. 2012, 09:00

Je suis bien loggué à la BDD dans le header du fichier j'ai un require_once et des session login, bref la page ne pourrait pas être affichée si je n'étais pas connecté.

je ne comprends pas j'ai essayé ainsi, tout en simplifiant au max la requête.
<?php 
	$sql="SELECT * FROM `gestionnaire`";
	$result=mysql_query($sql);
	while($data=mysql_fetch_assoc($result))
	{
		echo $data['nom'] ;
	}
	?>
Pourtant ça plante.

en fait c'est au niveau d'ajax que ça plante car de manière non asyncrhone le script ne plante pas...

Re: problème avec une requête asyncrhone avec ajax

par moogli » 07 sept. 2012, 18:58

Yop,

j'ajouterais
<?php

$requette = mysql_query("SELECT * FROM gestionnaire ORDER BY ID DESC LIMIT 0,10");
$result=mysql_query($requette) or die;
?>
ça doit foutre le brin un mysql_query de mysql_query (en gros tu fait mysql_query(mysql_query(requete)).

donc la au pif je dirais que au pire le second mysql_query retourne false donc le die arrete le script !

solution :
1/ Ajouter le mysql_connect comme l'indique xTg (+le mysql_selected_db) sauf si tu a configuré l'accès par défaut
2/ relire le script et virer le deuxième mysql_query
3/ Arreter de mettre des die quand une requete foire, c'est moche et ça emmerde à tout les coups (la preuve). le die doit être réservé à de rare cas, et en web je pas trop l'utilité :)


@+

Re: problème avec une requête asyncrhone avec ajax

par xTG » 07 sept. 2012, 18:15

mysql_connect() ?
@+

problème avec une requête asyncrhone avec ajax

par piotrowski-s » 07 sept. 2012, 17:35

Bonjour à toutes et à tous,

je suis en train de concevoir un script php/ajax qui me permet de faire du monitoring, en fait sur mon intranet je souhaite récupérer la liste des actions qui ont été enregistrées dans la base de données dans la journée. Du coup j'ai fais une requête pour l'instant j'essaie d'afficher les membres de manière asynchrone mais ça ne fonctionne pas.

En fait je voulais afficher les membres pour le test et après adapter aux agendas pour récupérer les actions du jour et ce de manière asynchrone (sans reload) car je dois pouvoir observer les données enregistrées en temps réel.

Du coup j'ai fais ce code:

dans le script.js qui est dans le header j'ai mis cela:
[javascript]function writeInDiv(text){
var objet = document.getElementById('monitoring');
objet.innerHTML = text;
}

function ajax()
{
var xhr=null;

if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.open("GET", "ajax.php", false);
xhr.send(null);
writeInDiv(xhr.responseText);
setInterval("ajax()",5000);
}
[/javascript]

ensuite j'ai deux autres pages, à savoir celle qui affiche le code, elle contient ceci:
<button onclick='javascript:ajax()'>Afficher</button>
                <div id="monitoring"></div>
et enfin celle qui fait le traitement de la requête envoyée:
<?php

$requette = mysql_query("SELECT * FROM gestionnaire ORDER BY ID DESC LIMIT 0,10");
$result=mysql_query($requette) or die;
While($donne = mysql_fetch_array($requette))
{
$message = htmlentities($donne['nom']);
$pseudo = htmlentities($donne['prenom']);
?>
<b><?php var_dump($donnee); echo $pseudo; ?>:</b> <?php echo $message; ?><br />
<?php
}
?>
le soucis c'est que rien ne s'affiche je n'ai pas même un message d'erreur, pourtant la table est bien remplie avec ces champs
j'ai essayé un var_dump au cas ou mais pareil, c'est le néant.

Je ne sais pas d'ou cela peut provenir.

Par avance merci pour votre aide.