Warning: mysql_fetch_array():
meskina
Messages postés
52
Statut
Membre
-
meskina Messages postés 52 Statut Membre -
meskina Messages postés 52 Statut Membre -
Bonjour,
J'ai une erreur avec laquelle j'essayé beaucoup de solution,mais à veine !
c'est: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/gec/public_html/site/exlNonviM.php on line 101
la requete ça marche trs bien sur phpmyadmin,elle m'affiche les résultats.donc surement le problème est au niveau du PHP,mais j'ai pas trouvé
merci de voir mon code et m 'aider si vous pouvez et merci d'avance!
J'ai une erreur avec laquelle j'essayé beaucoup de solution,mais à veine !
c'est: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/gec/public_html/site/exlNonviM.php on line 101
la requete ça marche trs bien sur phpmyadmin,elle m'affiche les résultats.donc surement le problème est au niveau du PHP,mais j'ai pas trouvé
merci de voir mon code et m 'aider si vous pouvez et merci d'avance!
<?php
$q=mysql_query('SELECT * FROM avisiter WHERE pharam_id NOT IN (SELECT pharam_id FROM listevisite )') or die(mysql_error());
while($d=mysql_fetch_array($q)){ //101
echo' <tr>
<td style="color:#4e7eeb;font-size:12">'.$d['pharam_id'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['nomm'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['liste'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['region'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['ville'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['secteur'].'</td>
</tr>';
}
ob_end_flush();
?>
A voir également:
- Warning: mysql_fetch_array():
- Warning zone telechargement - Accueil - Outils
- Symbole warning word ✓ - Forum Loisirs / Divertissements
- Warning battery is low ✓ - Forum Matériel & Système
- Cpu fan fail warning control - Forum BIOS
- Chip Fan Fail ..... - Forum Matériel & Système
19 réponses
Bonjour
mysql_fetch_assoc ou mysql_fetch_array, je ne vois pas ce que ça peut y changer, puisque c'est $q qui est incorrect d'après le message d'erreur.
Avec le or die(mysql_error()) qui précède, tu ne peux normalement pas avoir ce message d'erreur.
Comment as-tu fait ta connexion au serveur mysql ? Avec mysql_connect, ou avec PDO ?
mysql_fetch_assoc ou mysql_fetch_array, je ne vois pas ce que ça peut y changer, puisque c'est $q qui est incorrect d'après le message d'erreur.
Avec le or die(mysql_error()) qui précède, tu ne peux normalement pas avoir ce message d'erreur.
Comment as-tu fait ta connexion au serveur mysql ? Avec mysql_connect, ou avec PDO ?
Très bizarre que tu aies ce message sans que die(mysql_error()) ne signale rien...
Pour diagnostic, peux-tu insérer une ligne :
Et dire ce que ça affiche ?
Pour diagnostic, peux-tu insérer une ligne :
$q=mysql_query('SELECT * FROM avisiter WHERE pharam_id NOT IN (SELECT pharam_id FROM listevisite )') or die(mysql_error());
print_r($q);
while($d=mysql_fetch_array($q)){
Et dire ce que ça affiche ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
désolé pour le retard,mais j'ai des sérieux problèmes de zone de cnx..
merci pour ta suivie,alors l'affichage me donne :
1
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/gec/public_html/site/exlNonviM.php on line 102
Une remarque très importante,c'est que quand j'ai gardé que quelques données dans les deux tables et j'ai essayé en local,l'affichage est correcte sans warning,mais sur le serveur et vaec une Bd chargée ,ça donne le warning,sachant que si j'applique la requete sur phpmyadmin directement elle prends un peu du temps et affiche correctement..alors ?
perdue :(
merci pour ta suivie,alors l'affichage me donne :
1
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/gec/public_html/site/exlNonviM.php on line 102
Une remarque très importante,c'est que quand j'ai gardé que quelques données dans les deux tables et j'ai essayé en local,l'affichage est correcte sans warning,mais sur le serveur et vaec une Bd chargée ,ça donne le warning,sachant que si j'applique la requete sur phpmyadmin directement elle prends un peu du temps et affiche correctement..alors ?
perdue :(
sinon j'ai trouvé que peut être il faut utiliser les index à mes deux tables pour optimiser la requete,j'ai trouvé sur le manuel l'explication mais je sais pas comment appliquer sur mon exemple!?
SELECT pharam_id FROM listevisite renvoi un résultat?
tu peux toujours checker si un résultat est retourné en ne pas executer tes requestes
ex:
tu peux toujours checker si un résultat est retourné en ne pas executer tes requestes
ex:
$rows=mysql_num_rows($q)
echo $rows; // Permet de retourné le nombre de résultat présent dans ta requete
if ($rows!=0) {
while($d=mysql_fetch_array($q)){ //101
echo' <tr>
<td style="color:#4e7eeb;font-size:12">'.$d['pharam_id'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['nomm'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['liste'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['region'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['ville'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['secteur'].'</td>
</tr>';
}
}
else //test si le traitement se fait jusque la
{
echo 'aucun résultat retourné';
}
Je ne vois pas d'erreur de syntaxe dans ta requête. Mysql non plus apparemment, puisque le le or die.. du mysql_query n'affiche pas d'erreur.
Pourtant, le résultat du mysql est incorrect : le print_r($q); aurait dû t'afficher Resource id #qqchose et pas simplement 1.
Peux-tu donner tout le code de la page jusqu'à la ligne 110 (en cachant les mots de passe évidemment) ?
Pourtant, le résultat du mysql est incorrect : le print_r($q); aurait dû t'afficher Resource id #qqchose et pas simplement 1.
Peux-tu donner tout le code de la page jusqu'à la ligne 110 (en cachant les mots de passe évidemment) ?
Meerci à vos réponses,alors voilà le code de toute la page,(sinon avez vous lu mon dernier statut des index..car si les tables sont légères j'ai les résultats sinon j'ai rien!?)
<?php
ob_start();
include('connexion.php');
//Pour exporter les résultats dans un fichier Excel
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=Non_Visites.xls");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<script language="javascript">
function edition()
{
options = "Width=950%,Height=900%" scroll=true ;
window.open( "edition_listes.php", "edition", options ) ;
}
</script>
<style type="text/css">
.ds_box {
background-color: #FFF;
border: 1px solid #000;
position: absolute;
z-index: 32767;
}
.ds_tbl {
background-color: #FFF;
}
.ds_head {
background-color: #333;
color: #FFF;
font-family: Arial, Helvetica, sans-serif;
font-size: 13px;
font-weight: bold;
text-align: center;
letter-spacing: 2px;
}
.ds_subhead {
background-color: #CCC;
color: #000;
font-size: 12px;
font-weight: bold;
text-align: center;
font-family: Arial, Helvetica, sans-serif;
width: 32px;
}
.ds_cell {
background-color: #EEE;
color: #000;
font-size: 13px;
text-align: center;
font-family: Arial, Helvetica, sans-serif;
padding: 5px;
cursor: pointer;
}
.ds_cell:hover {
background-color: #F3F3F3;
} /* This hover code won't work for IE */
.style6 {color: #0066FF}
.style7 {color: #4e7eeb}
.style8 {color: #000033}
.style9 {font-size: 10px}
.style10 {font-weight: bold}
.style11 {color: #000000}
</style>
</head>
<body>
<form name="form2" id="form2">
<div align="left" class="style10">
<p align="left" class="style19"><font color="green" ></span><span class="style7"><strong>Médecins Non visités </strong></span></p>
</div>
</form>
<table width="87%" height="30" border="1" cellspacing="0" bgcolor="#ffffff">
<tr>
<th width="174" bgcolor="#FFFFCC" class="style13 style7 style9">Medecin</th>
<th width="140" bgcolor="#FFFFCC"><span class="style13 style7 style9">Representant </span></th>
<th width="89" bgcolor="#FFFFCC" class="style13 style7 style9">Liste</th>
<th width="141" bgcolor="#FFFFCC" class="style13 style7 style9">Region</th>
<th width="117" bgcolor="#FFFFCC" class="style13 style7 style9">Ville</th>
<th width="99" bgcolor="#FFFFCC" class="style13 style7 style9">Secteur</th>
</tr>
<?php
$q= mysql_query(" SELECT * FROM avisiter av WHERE
NOT EXISTS ( SELECT (id_listevisite) FROM listevisite lv WHERE av.pharam_id = lv.pharam_id ) ");
print_r($q);
while($d=mysql_fetch_assoc($q)){
echo' <tr>
<td style="color:#4e7eeb;font-size:12">'.$d['nom'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['nomm'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['liste'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['region'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['ville'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['secteur'].'</td>
</tr>';
}
ob_end_flush();
?>
</table>
</body>
</html>
<?php
ob_start();
include('connexion.php');
//Pour exporter les résultats dans un fichier Excel
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=Non_Visites.xls");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<script language="javascript">
function edition()
{
options = "Width=950%,Height=900%" scroll=true ;
window.open( "edition_listes.php", "edition", options ) ;
}
</script>
<style type="text/css">
.ds_box {
background-color: #FFF;
border: 1px solid #000;
position: absolute;
z-index: 32767;
}
.ds_tbl {
background-color: #FFF;
}
.ds_head {
background-color: #333;
color: #FFF;
font-family: Arial, Helvetica, sans-serif;
font-size: 13px;
font-weight: bold;
text-align: center;
letter-spacing: 2px;
}
.ds_subhead {
background-color: #CCC;
color: #000;
font-size: 12px;
font-weight: bold;
text-align: center;
font-family: Arial, Helvetica, sans-serif;
width: 32px;
}
.ds_cell {
background-color: #EEE;
color: #000;
font-size: 13px;
text-align: center;
font-family: Arial, Helvetica, sans-serif;
padding: 5px;
cursor: pointer;
}
.ds_cell:hover {
background-color: #F3F3F3;
} /* This hover code won't work for IE */
.style6 {color: #0066FF}
.style7 {color: #4e7eeb}
.style8 {color: #000033}
.style9 {font-size: 10px}
.style10 {font-weight: bold}
.style11 {color: #000000}
</style>
</head>
<body>
<form name="form2" id="form2">
<div align="left" class="style10">
<p align="left" class="style19"><font color="green" ></span><span class="style7"><strong>Médecins Non visités </strong></span></p>
</div>
</form>
<table width="87%" height="30" border="1" cellspacing="0" bgcolor="#ffffff">
<tr>
<th width="174" bgcolor="#FFFFCC" class="style13 style7 style9">Medecin</th>
<th width="140" bgcolor="#FFFFCC"><span class="style13 style7 style9">Representant </span></th>
<th width="89" bgcolor="#FFFFCC" class="style13 style7 style9">Liste</th>
<th width="141" bgcolor="#FFFFCC" class="style13 style7 style9">Region</th>
<th width="117" bgcolor="#FFFFCC" class="style13 style7 style9">Ville</th>
<th width="99" bgcolor="#FFFFCC" class="style13 style7 style9">Secteur</th>
</tr>
<?php
$q= mysql_query(" SELECT * FROM avisiter av WHERE
NOT EXISTS ( SELECT (id_listevisite) FROM listevisite lv WHERE av.pharam_id = lv.pharam_id ) ");
print_r($q);
while($d=mysql_fetch_assoc($q)){
echo' <tr>
<td style="color:#4e7eeb;font-size:12">'.$d['nom'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['nomm'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['liste'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['region'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['ville'].'</td>
<td style="color:#4e7eeb;font-size:12">'.$d['secteur'].'</td>
</tr>';
}
ob_end_flush();
?>
</table>
</body>
</html>
Et pourquoi ces headers fantaisistes alors que tu génères du html tout simple ? Mais c'est un autre problème, avec ton javascript incorrect.
[edit] Je retire ce que j'ai écrit pour les headers fantaisistes, je viens de faire l'essai. Je n'aurais jamais cru qu'on pouvait donner à Excel du html pur et dur.
Par contre il y a quand même un problème de javascript.
[edit] Je retire ce que j'ai écrit pour les headers fantaisistes, je viens de faire l'essai. Je n'aurais jamais cru qu'on pouvait donner à Excel du html pur et dur.
Par contre il y a quand même un problème de javascript.
comme j'ai indiqué le problème est fortement probable de lla part des tables trop chargés..comment faire pour ajouter les index à ma requete ?
Ce n'est pas à la requête, mais aux tables qu'il faut ajouter des index.
Puisque tu fais une comparaison av.pharam_id = lv.pharam_id, il faut ajouter un index sur le champ pharam_id sur les deux tables. Ça se fait facilement avec phpmyadmin, mais si tes tables sont volumineuses, la création d'index peut prendre un moment.
Puisque tu fais une comparaison av.pharam_id = lv.pharam_id, il faut ajouter un index sur le champ pharam_id sur les deux tables. Ça se fait facilement avec phpmyadmin, mais si tes tables sont volumineuses, la création d'index peut prendre un moment.
oui,j'ai ajouté CREATE UNIQUE INDEX PharamAVISI_IDX1 ON avisiter(pharam_id) à la table avisiter
et CREATE UNIQUE INDEX PharamLISTVI_IDX1 ON listevisite(pharam_id) à la table listevisite
Mais dans la requête,il faut normalement ajouter ces index non ?
alors j'ai fait : SELECT *
FROM avisiter av
WHERE NOT EXISTS (SELECT (id_listevisite)
FROM listevisite lv
WHERE lv.PharamAVISI_IDX1 = av.PharamAVISI_IDX1) ;
mais ça donne erreur de : #1054 - Unknown column 'lv.PharamAVISI_IDX1' in 'where clause'
et CREATE UNIQUE INDEX PharamLISTVI_IDX1 ON listevisite(pharam_id) à la table listevisite
Mais dans la requête,il faut normalement ajouter ces index non ?
alors j'ai fait : SELECT *
FROM avisiter av
WHERE NOT EXISTS (SELECT (id_listevisite)
FROM listevisite lv
WHERE lv.PharamAVISI_IDX1 = av.PharamAVISI_IDX1) ;
mais ça donne erreur de : #1054 - Unknown column 'lv.PharamAVISI_IDX1' in 'where clause'
Je ne suis pas spécialiste SQL, mais il me semble bien que ce sont les champs qu'il faut indiquer et non pas les index. MySQL utilise les index s'il les juge appropriés.
Pour vérifier s'il s'en sert, utilise une commande EXPLAIN : https://dev.mysql.com/doc/refman/8.0/en/verifying-index-usage.html
Pour vérifier s'il s'en sert, utilise une commande EXPLAIN : https://dev.mysql.com/doc/refman/8.0/en/verifying-index-usage.html
hmmm quand j'ai essayé d'indexé les tables,ça me donne l'erreur:
1062 - Duplicate entry '3135' for key 'PharamLISTVI_IDX1'
??
1062 - Duplicate entry '3135' for key 'PharamLISTVI_IDX1'
??
Et qu'est-ce que tu ne comprends pas à ce message ? Visiblement, tu essayes de définir une clé unique alors que tu as deux fois la même valeur. À toi de savoir si pharam_id peut ou non apparaître deux fois dans ta table. Si c'est possible, tu n'as pas à définir un index UNIQUE et si ce n'est as possible, il faut corriger tes données.
Il y a une chose que moi je ne comprends pas. C'est qu'à ton message #16, tu disais que tu avais créé ces index, et maintenant tu me dis qu'il y a une erreur en les créant. Alors ?
Il y a une chose que moi je ne comprends pas. C'est qu'à ton message #16, tu disais que tu avais créé ces index, et maintenant tu me dis qu'il y a une erreur en les créant. Alors ?
oui car au début je les crées sur la base en local(qui a pas des doublons) mais sur la Db réelle il y on a des doublons pour pharam_id :)
Donc,pour ces doublons dans le champs pharam_id je peux pas les enlever car ça fait parti des données.
alors puisque c'est le cas tu qu'est ce que tu me propose come solution ?
merci d'avance pour votre suivie
Donc,pour ces doublons dans le champs pharam_id je peux pas les enlever car ça fait parti des données.
alors puisque c'est le cas tu qu'est ce que tu me propose come solution ?
merci d'avance pour votre suivie