Mysql_fetch_row()

Fermé
Geo - 2 nov. 2005 à 17:19
GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 - 3 nov. 2005 à 09:55
Bonjour,
J'ai le message Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\intranet\patient\admin\carnet.php on line 194
Je ne vois pas a quoi cela correspond.
Je voudrais faire apparaitre que les enregistrement dont le champ date_obtenue est = à 0000-00-00 et ce message provient lorsque que j'effectue une recherche a partir des mode de recherche que j'ai créé.
alors que lors de l'affichage de carnet.php, le tableau m'affiche correctement les enregistrement qui n'ont pas de date_obtenue

merci pour votre aide precieuse

Geo

code du fichier carnet.php:
<?php

include ("_var.inc.php");
include ("_fonctions.inc.php");


@$clause = $_GET["clause"];
@$ordre = $_GET["ordre"];
@$nbr_line_min = $_GET["nbr_line_min"];
@$view_cat = $_GET["view_cat"];
@$nbr_line_view = $_GET["nbr_line_view"];
@$motclef = $_GET["motclef"];
@$dans = $_GET["dans"];

if($debugSQL) {
if($lienDB = mysql_connect($DBserver,$DBlogin,$DBpass)) echo "Connexion au serveur MySQL : OK <br>\n";
if(mysql_select_db($DB)) echo "Connexion à la base : OK <hr>\n\n";
} else {
$lienDB = @mysql_connect($DBserver,$DBlogin,$DBpass);
@mysql_select_db($DB);
}

// Suppression automatique des Post-it "TERMINER", "DEVEROUILLE" et EXPIRE
if($del_postit_obso_ok) {
$date_verif = date("Y-m-d");

$sql = "SELECT id_postit,date_event FROM $T_postit WHERE id_statut = '3' AND verrouille = '2'";
$affichage_debug = $sql."<br>\n";

$result_postit_obso = mysql_query($sql);

while($postit_obso = mysql_fetch_row($result_postit_obso)) {
if($postit_obso[1] < $date_verif) {
$sql2 = "DELETE FROM $T_postit WHERE id_postit = '".$postit_obso[0]."'";
$affichage_debug .= $sql2."<br>\n";

if($debugSQL) {
if(mysql_query($sql2)) $affichage_debug .= "Suppression automatique du Post-it n° ".$postit_obso[0]." : OK <br>\n";
else $affichage_debug .= "Suppression automatique du Post-it n° ".$postit_obso[0]." : ERREUR <br>\n";
} else {
@mysql_query($sql2);
}
}
}
if($debugSQL) echo $affichage_debug."<hr>";
}

$sql = "SELECT nom FROM $T_cat ORDER BY id_cat";
$resultat = mysql_query($sql);
$i = 0;
while($categorie = mysql_fetch_row($resultat)) {
$i++;
$cat[$i] = $categorie[0];
// echo "\n $i = $cat[$i]<br>\n";
}

if(empty($nbr_line_view))
$nbr_line_view = $nbr_line;

?>

<html>
<head>
<title>FICHE PATIENT</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="styles.css" rel="stylesheet" type="text/css">
<!-- DEBUT REMOVE PRINT-->
<!--http://www.javascriptkit.com/-->
<script language="JavaScript">
function removeelements(){
//store all elements with id=remove to "remove_el"
var remove_el=document.all.remove
//if there is only one element with id=remove
if (remove_el!=''&&remove_el.length==null)
remove_el.style.display='none'
else{
//for each element with id=remove
for (i=0;i<remove_el.length;i++)
remove_el[i].style.display='none'
}
}
function revertback(){
setTimeout("window.location.reload()",50)
}
window.onbeforeprint=removeelements
window.onafterprint=revertback
</script>
<!-- FIN REMOVE PRINT-->
<script language="JavaScript">
function ieExecWB( intOLEcmd, intOLEparam ) {
var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
if (!intOLEparam || intOLEparam < -1 || intOLEparam > 1 ) {
intOLEparam = 1;
}
WebBrowser1.ExecWB( intOLEcmd, intOLEparam );
WebBrowser1.outerHTML = "";
};
</script>
</head>

<body BACKGROUND="img\background.gif">

<?php include("top.inc.php"); ?>

<table width="100%">
<tr>
<td align="center" class="pied"><hr width="50%">
</td>
</tr>
</table>
<table id="remove" width="100%" border="0" cellspacing="5" cellpadding="10">

<tr>

<div align="center"><b>Afficher que les Patients du service... </b></div>
<div align="center"><a href="http://132.147.160.203/INTRANET/patient/admin/carnet.php?&Submit=Afficher&motclef=Médecine&dans=service"><br><b>Médecine</b></a></div>
<div align="center"><a href="http://132.147.160.203/INTRANET/patient/admin/carnet.php?&Submit=Afficher&motclef=Chirurgie&dans=service"><br><b>Chirurgie</b></a></div>
<div align="center"><a href="http://132.147.160.203/INTRANET/patient/admin/carnet.php?&Submit=Afficher&motclef=Hôpital de Jour&dans=service"><br><b>Hôpital de Jour</b></a></div>
<div align="center"><a href="http://132.147.160.203/INTRANET/patient/admin/carnet.php?&Submit=Afficher&motclef=S.S.R.&dans=service"><br><b>S.S.R.</b></a></div>
<div align="center"><a href="http://132.147.160.203/INTRANET/patient/admin/carnet.php?&Submit=Afficher&motclef=Urgences&dans=service"><br><b>Urgences</b></a></div>

<form action="carnet.php" method="get">


<font color="#FF0000"><b>Rechercher</b></font>
<input name="motclef" type="text" value="<?php echo"$motclef"; ?>" size="10">
<font color="#FF0000"><b>dans</b></font>
<select name="dans" id="dans">
<option value="tout" <?php if($dans == "tout") echo "selected"; ?>>Choisir...</option>
<option value="nom" <?php if($dans == "nom") echo "selected"; ?>>Nom</option>
<option value="prenom" <?php if($dans == "prenom") echo "selected"; ?>>Prénom</option>
<option value="naissance" <?php if($dans == "naissance") echo "selected"; ?>>Date de naissance (aaaa-mm-jj)</option>
<option value="date_entree" <?php if($dans == "date_entree") echo "selected"; ?>>Date d'Entrée (aaaa-mm-jj)</option>
</select> <input type="submit" value="Chercher">



<font color="#FF0000"><BR><BR>Indiquer ici le nombre de lignes que vous voulez voir afficher sur cette page (par défaut 20) et cliquer sur OK <input type="text" name="nbr_line_view" value="<?php echo $nbr_line_view; ?>" size="5"> <input type="submit" value="OK"></BR></BR></font>
</tr>
</form>
Cliquer sur les libellés de colonnes pour les classer par ordre alphabétique
</table>

<table width="100%" border="0" cellspacing="2" cellpadding="3">
<tr>
<td width="15%" align="center" bgcolor="#000000"><a href="carnet.php?<?php echo "nbr_line_view=$nbr_line_view&motclef=$motclef&dans=$dans&nbr_line_min=$nbr_line_min"; ?>"><font color="#FFFFFF"><strong>Nom</strong></font></a></td>
<td width="15%" align="center" bgcolor="#000000"><a href="carnet.php?ordre=prenom<?php echo "&nbr_line_view=$nbr_line_view&motclef=$motclef&dans=$dans&nbr_line_min=$nbr_line_min"; ?>"><font color="#FFFFFF"><strong>Prénom</strong></font></a></td>
<td width="20%" align="center" bgcolor="#000000"><a href="carnet.php?ordre=naissance<?php echo "&nbr_line_view=$nbr_line_view&motclef=$motclef&dans=$dans&nbr_line_min=$nbr_line_min"; ?>"><font color="#FFFFFF"><strong>Date de Naissance (aaaa-mm-jj)</strong></font></a></td>
<td width="15%" align="center" bgcolor="#000000"><a href="carnet.php?ordre=date_entree<?php echo "&nbr_line_view=$nbr_line_view&motclef=$motclef&dans=$dans&nbr_line_min=$nbr_line_min"; ?>"><font color="#FFFFFF"><strong>Date d'Entrée (aaaa-mm-jj)</strong></font></a></td>
<td width="15%" align="center" bgcolor="#000000"><a href="carnet.php?ordre=service<?php echo "&nbr_line_view=$nbr_line_view&motclef=$motclef&dans=$dans&nbr_line_min=$nbr_line_min"; ?>"><font color="#FFFFFF"><strong>Dans le service</strong></font></a></td>
<td width="15%" align="center" bgcolor="#000000"><font color="#FFFFFF"><strong>Action</font></strong></td>
</tr>
<?php
if(empty($ordre)) $ordre = "nom";

// Ajoute la selection par mot cléf à la commande SQL
if(!empty($motclef)) {
if($dans == "tout")
$clause = "WHERE date_entree LIKE'$motclef%' OR nom LIKE'$motclef%' OR prenom LIKE'$motclef%' OR service LIKE'$motclef%' OR naissance LIKE'$motclef%'";
else
$clause = "WHERE $dans LIKE'$motclef%'";
}

if($view_cat != 0)
$clause = "WHERE service=$view_cat";

if(empty($nbr_line_min))
$nbr_line_min = 0;
else {
if($nbr_line_min < 0) $nbr_line_min = 0;
}
// Nombre d'enregistrement total
$sql = "SELECT * FROM $T_contacts $clause";
$resultat = mysql_query($sql);
$max = mysql_num_rows($resultat);

$sql = "SELECT id_contact,nom,prenom,service,naissance,date_entree FROM $T_contacts $clause WHERE date_obtenue IS NULL ORDER BY $ordre LIMIT $nbr_line_min, $nbr_line_view";
$resultat = mysql_query($sql);
mysql_close($lienDB);
$color = true;
$i = 0;


// Boucle d'affichage du tableau avec les variables de la table SQL
while($contact = mysql_fetch_row($resultat)) {
$i++;
if($color) {
$color_td = $color_1;
$color = false;
} else {
$color_td = $color_2;
$color = true;
}
echo "<tr bgcolor=\"#".$color_td."\">\n";
// echo "<td><img src=\"img/users.gif\" width=\"15\" height=\"15\"> ".$contact[1]." ".$contact[2]."</td>\n"; // Nom et Prénom
echo "<td>".$contact[1]."</td>\n"; // Nom
echo "<td>".$contact[2]."</td>\n"; // Prénom
echo "<td>".$contact[4]."</td>\n"; // naissance
echo "<td>".$contact[5]."</td>\n"; // arrivee
echo "<td>".$contact[3]."</td>\n"; // Service
echo '<td><div align="center"><a href="contact_view.php?id='.$contact[0].'">Administrer cette Fiche</a></div></td>'."\n";
echo "</tr>\n";
}
echo "</table>\n";
// echo "<br>i : $i<br>nbr_line_min : $nbr_line_min<br>nbr_line_view : $nbr_line_view<br>";
if($i == 0)
echo "<center><h1>Pas d'enregistrement</h1></center>\n";
else
echo "<br><center><strong>$i patients présents sur $max enregistrements trouvés</strong></center><br>\n";

if($nbr_line_min < $nbr_line_view)
echo "<center>«« précédente ";
else {
$min = $nbr_line_min - $nbr_line_view;
echo "<center><a href=\"carnet.php?view_cat=$view_cat&ordre=$ordre&nbr_line_view=$nbr_line_view&motclef=$motclef&dans=$dans&nbr_line_min=$min\">«« précédente</a> ";
}
echo "<strong>|</strong> \n";
$ii = 0;
$x = ($max / $nbr_line_view) + 1;
// echo "x=$x :: i=";
if($x > 2) {
for($i = 1; $i < $x; $i++) {
echo "<a href=\"carnet.php?view_cat=$view_cat&ordre=$ordre&nbr_line_view=$nbr_line_view&motclef=$motclef&dans=$dans&nbr_line_min=$ii\">$i</a>";
echo " <strong>|</strong> \n";
$ii = $ii + $nbr_line_view;
}
}

if(($nbr_line_min + $nbr_line_view) >= $max)
echo "suivante »»</center>\n";
else {
$nbr_line_min = $nbr_line_min + $nbr_line_view;
echo "<a href=\"carnet.php?view_cat=$view_cat&ordre=$ordre&nbr_line_view=$nbr_line_view&motclef=$motclef&dans=$dans&nbr_line_min=$nbr_line_min\">suivante »»</a></center>\n";
}
?>
<table id="remove" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center" class="pied"><hr width="300">

</tr>
</table>
</body>
</html>

3 réponses

GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 387
2 nov. 2005 à 17:53
Le message d'erreur te dit que la "ressource" passé en argument de ta fonction, n'est pas une ressource mysql valide. Le plus souvent, cela correspond à une requete mysql avec une erreur.

Quand tu utilise la fonction mysql_query(), utilise la comme ca :
$resultat=mysql_query($requete) or die(mysql_error().'<br />'.$requete);


Ainsi tu saura quel est l'erreur que retourne mysql (s'il y en a une)
0
Bonjour

Merci pour cette réponse rapide.
au lancement de ce fichier il m'indique bien que les enregistrements où la date_obtenue est vide (= à '0000-00-00')

Mais le message m'indique ceci lorsque je veux faire une recherche par service:
Something is wrong in your syntax près de 'WHERE date_obtenue = '0000-00-00' ORDER BY nom LIMIT 0, 20' à la ligne 1
SELECT id_contact,nom,prenom,service,naissance,date_entree FROM tfi2003_contacts WHERE service LIKE'Médecine%' WHERE date_obtenue = '0000-00-00' ORDER BY nom LIMIT 0, 20

J'ai modifier cette partie de code par rapport au recommandations de GallyNet

// Nombre d'enregistrement total
$sql = "SELECT * FROM $T_contacts $clause ";
$resultat = mysql_query($sql) or die(mysql_error().'<br />'.$sql);
$max = mysql_num_rows($resultat);

$sql = "SELECT id_contact,nom,prenom,service,naissance,date_entree FROM $T_contacts $clause WHERE date_obtenue = '0000-00-00' ORDER BY $ordre LIMIT $nbr_line_min, $nbr_line_view";
$resultat = mysql_query($sql) or die(mysql_error().'<br />'.$sql);
mysql_close($lienDB);
$color = true;
$i = 0;

merci pour vos réponses

Geo
0
GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 387
3 nov. 2005 à 09:55
Le message d'erreur renvoyer par mysql te dit qu'il y a une erreur dans ta requete (au niveau de WHERE ...).
Et effectivement il y a bien une erreur dans la requete :
SELECT id_contact,nom,prenom,service,naissance,date_entree
FROM tfi2003_contacts
WHERE service LIKE'Médecine%'
WHERE date_obtenue = '0000-00-00'
ORDER BY nom LIMIT 0, 20 

Tu as deux fois le mot clé "WHERE", et ceci est interdit dans une requete simple. Il faudrait plutot que ce soit
WHERE service LIKE'Médecine%' AND date_obtenue = '0000-00-00'
0