message d'erreur que je ne comprends pas

hatice
Invité n'ayant pas de compte PHPfrance

30 mai 2005, 11:07

Salut,

j'ai ce message d'erreur mais je ne comprends pas ce qu'il veux dire ?

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in

merci d'avance

Mammouth du PHP | 19672 Messages

30 mai 2005, 11:08

Fais-nous voir ton code, on te dira ce qui va pas, c'est un classique pas très grave, mais la syntaxe est stricte.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

30 mai 2005, 11:11

Ca veut dire que la requete que tu as passé dans mysql_query() est fausse et que tu tente de mettre le message d'erreur que t'a retourné cette fnctions dans un tableau !!!!

Pour t'éviter ce genre d'erreur, tu peut faire :
if ($o_result = mysql_query(...))
  $a_result= mysql_fecth_array(...);
else
  echo "Erreur";
Sinon, je te conseille d'afficher la requete que tu tentes d'exécuter, de l'executer depuis PhpMyAdmin (si tu utilise EasyPHP). Ca te permettra de vérifier sa validité et, en cas d'erreur, de voir le message d'erreur !!!!
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Hatice
Invité n'ayant pas de compte PHPfrance

30 mai 2005, 14:14

Merci j'ai trouvé le probleme il failait que je mette une variable entre simple cote...

Par contre j'ai un autre petit probleme, je dois faire passer une variable entre 2 pages php mais elle ne passe pas, que dois je faire?

Est ce que quelqu'un peut m'aider si je lui envoie mon code ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

30 mai 2005, 14:15

Poste et on verra ce qu'on peut faire
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Hatice
Invité n'ayant pas de compte PHPfrance

30 mai 2005, 14:26

voila ma page qui s'appel index.php :

?>




<table width=500 border=0 align="center">
<tr bgcolor=#6699CC>
<td>
<div align="center">
<font face="Arial, Helvetica, sans-serif" color="#FFFFFF">
Matériel
</font>
</div>
</td>
<td width="50">
<div align="center"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF" size="2">
Tarif<br>
journée</font>
</div>
</td>
<td width="50">

</td>
</tr>
<?
$req=mysql_query("SELECT * from materiel ORDER BY Type_materiel");
while ($temp=mysql_fetch_array($req)){
echo "
<tr>
<td bgcolor=#CCCCCC>
<font face='Arial, Helvetica, sans-serif' size='-1'>$temp[Type_materiel]</font>
</td>
<td align=center bgcolor=#CCCCCC>
<font face='Arial, Helvetica, sans-serif' size='-1'>$temp[Tarif_jour]€</font>
</td>
<td bgcolor=#ffffcc><font face='Arial, Helvetica, sans-serif' size='-1'><a href=modules/Bricolage/form_bri.php?id=", $temp[id_mat], "&mat=", urlencode($temp[Type_materiel]),"' target=_blank>réserver</a></font>
</td>
</tr>";
}

mysql_close();

?>
</table>


Cette page me permet l'accès a cette nouvelle page :


<html>
<head>
<title>: : Le site du CE d'AVTF : : | Formulaire bricolage</title>
</head>
<body>
<center>

<?

//récupération variable url
$materiel1 =$id;
$materiel = urlencode($mat);
include('connect.php');
?>
<form method=post action="form_bri.php?id=<? echo $materiel1; ?>&mat=<? echo $materiel; ?>">
<table border="0" bordercolor="#000000" cellspacing="5" width="512">
<tr>
<td colspan="2" bgcolor="66cccc">
<div align="center"><font face="Arial, Helvetica, sans-serif"><? echo $materiel ; ?>+Formulaire
de réservation </font></div>
</td>
</tr>
<tr>
<td width="264">
<div align="right"><font face="Arial, Helvetica, sans-serif" color="#000000" size="-1">Votre
nom : </font></div>
</td>
<td width="229"> <font face="Arial, Helvetica, sans-serif" color="#000000" >
<input name="nom_demandeur" size=20>
</font></td>
</tr>
<tr>
<td width="264">
<div align="right"><font face="Arial, Helvetica, sans-serif" color="#000000" size="-1">Votre
prénom : </font></div>
</td>
<td width="229"> <font face="Arial, Helvetica, sans-serif" color="#000000" >
<input name="prenom_demandeur" size=20>
</font></td>
</tr>
<tr>
<td width="264">
<div align="right"><font face="Arial, Helvetica, sans-serif" size="-1">Service
: </font></div>
</td>
<td width="229"><font face="Arial, Helvetica, sans-serif" color="#000000" >
<input name="service_demandeur" size=20>
</font><font face="Arial, Helvetica, sans-serif"></font></td>
</tr>
<tr>
<td width="264">
<div align="right"><font face="Arial, Helvetica, sans-serif" size="-1">Poste
: </font></div>
</td>
<td width="229"><font face="Arial, Helvetica, sans-serif" color="#000000" >
<input name="poste_demandeur" size=20>
</font><font face="Arial, Helvetica, sans-serif"></font></td>
</tr>
<tr>
<td colspan="2" bgcolor="#FFFFCC">
<div align="center"><font face="Arial, Helvetica, sans-serif" size="-1">Vous
souhaitez enprunter le matériel suivant : </font></div>
</td>
</tr>
<tr>
<td bgcolor="#FFFFFF" colspan="2">
<div align="center"><font face="Arial, Helvetica, sans-serif" color="#000000" size="-1">
<? echo $mat;?>
</font></div>
</td>
</tr>

<?
//connection à la base SQL
mysql_connect($dbhost,$dbuser,$dbpass);
$connexion_reussi=mysql_selectdb("nuke");

$req=mysql_query("SELECT * from res_mat where id='$id' ORDER BY fin ");

//compte du nombre de lignes de résultat
$numrows=mysql_num_rows($req);

if ($numrows>0){

echo "<tr>"
."<td colspan=\"2\" bgcolor=\"#FFFFCC\">"
."<div align='center'><font face='Arial, Helvetica, sans-serif' size=\"-1\">Voici les réservations déjà effectuées:</font></div>"
."</td>"
."</tr>"
."<tr>"
."<td bgcolor=\"#FFFFFF\" colspan=\"2\">"
." <div align='center'><font face='Arial, Helvetica, sans-serif' color=\"#000000\" size=\"-1\"> ";
//mise en forme de la date
function form_date($ma_date){
$jour=substr($ma_date,8,2);
$mois=substr($ma_date,5,2);
$annee=substr($ma_date,0,4);
$mf=$jour."/".$mois."/".$annee;
return $mf;
}

while ($temp=mysql_fetch_array($req)){
if($temp[fin]>=date("Y-m-d")){
echo "Du <font color=#FF0000>".form_date($temp[deb]).
" au ".form_date($temp[fin])."</font> par ".$temp[prenom]." ".$temp[nom]."<br>";
}
}

}
echo
"</font></div>";
?>

<tr bgcolor="#FFFFFF">
<td width="264"><font face="Arial, Helvetica, sans-serif" size="-1">Matériel
à ajouter à la réservation (facultatif) :<br>
</font><font face="Arial, Helvetica, sans-serif" size="1">exemple: prolongateur
électrique 20m </font></td>
<td width="229"> <font face="Arial, Helvetica, sans-serif">
<textarea name="commentaire" cols="20" rows="2" wrap="VIRTUAL"></textarea>
</font></td>
</tr>
<tr>
<td colspan="2" bgcolor="#FFFFCC">
<div align="center"><font face="Arial, Helvetica, sans-serif" size="-1">Durée
de lemprunt :</font></div>
</td>
</tr>
<tr>
<td width="264">
<div align="right"><font face="Arial, Helvetica, sans-serif" size="-1">Du
: </font></div>
</td>
<td width="229"> <font face="Arial, Helvetica, sans-serif" color="#000000" size="-1">
<select name="jour_debut">
<option selected>
<option>01
<option>02
<option>03
<option>04
<option>05
<option>06
<option>07
<option>08
<option>09
<option>10
<option>11
<option>12
<option>13
<option>14
<option>15
<option>16
<option>17
<option>18
<option>19
<option>20
<option>21
<option>22
<option>23
<option>24
<option>25
<option>26
<option>27
<option>28
<option>29
<option>30
<option>31
</select>
<select name="mois_debut">
<option selected>
<option value="01">janvier
<option value="02">fevrier
<option value="03">mars
<option value="04">avril
<option value="05">mai
<option value="06">juin
<option value="07">juillet
<option value="08">aout
<option value="09">septembre
<option value="10">octobre
<option value="11">novembre
<option value="12">decembre
</select>
<input type="text" name="an_debut" maxlength="4" size="4" value=<? echo date("Y");?> >
</font></td>
</tr>
<tr>
<td width="264">
<div align="right"><font face="Arial, Helvetica, sans-serif" size="-1" >Au</font><font face="Arial, Helvetica, sans-serif" size="-1">
: </font></div>
</td>
<td width="229"><font face="Arial, Helvetica, sans-serif" color="#000000" size="-1">
<select name="jour_fin">
<option selected>
<option>01
<option>02
<option>03
<option>04
<option>05
<option>06
<option>07
<option>08
<option>09
<option>10
<option>11
<option>12
<option>13
<option>14
<option>15
<option>16
<option>17
<option>18
<option>19
<option>20
<option>21
<option>22
<option>23
<option>24
<option>25
<option>26
<option>27
<option>28
<option>29
<option>30
<option>31
</select>
<select name="mois_fin">
<option selected>
<option value="01">janvier
<option value="02">fevrier
<option value="03">mars
<option value="04">avril
<option value="05">mai
<option value="06">juin
<option value="07">juillet
<option value="08">aout
<option value="09">septembre
<option value="10">octobre
<option value="11">novembre
<option value="12">decembre
</select>
<input type="text" name="an_fin" maxlength="4" size="4" value=<? echo date("Y");?>>
</font></td>
</tr>
<tr>
<td colspan="2" bgcolor="66cccc"><font color="66cccc">-</font></td>
</tr>
<tr>
<td width="264">
<div align="left"><font face="Arial, Helvetica, sans-serif" color="#000000" size="-1">
<input type="reset" name="reset" value="Annuler">
</font></div>
</td>
<td width="229">
<div align="right"><font face="Arial, Helvetica, sans-serif" color="#000000" size="-1">
<input type="submit" name="Submit" value="Réserver">
</font></div>
</td>
</tr>
</table>
<p><br>
</p>
</form>
</center>

<?

// retourne le timestamp UNIX de la date saisie par lutilisateur
$deb_res= mktime( 0, 0, 0, $mois_debut, $jour_debut, $an_debut );
$fin_res= mktime( 0, 0, 0, $mois_fin, $jour_fin, $an_fin );

//pour chaque intervalle de réservation existante on regarde si les dates de lutilisateur nempiètent pas
//sur des réservations existentes
$req2=mysql_query("SELECT * from res_mat where id='$id' ORDER BY fin");


//on passe toutes les réservations en revue

while ($temp2=mysql_fetch_array($req2)){

// retourne le timestamp UNIX de la date dans la base
$deb_j= substr($temp2[deb],8,2);
$deb_m= substr($temp2[deb],5,2);
$deb_a=substr($temp2[deb],0,4);
$deb_ref= mktime( 0, 0, 0, $deb_m, $deb_j, $deb_a );

$fin_j= substr($temp2[fin],8,2);
$fin_m= substr($temp2[fin],5,2);
$fin_a=substr($temp2[fin],0,4);
$fin_ref= mktime( 0, 0, 0, $fin_m, $fin_j, $fin_a );

$chevauche=0;

if((($deb_res >= $deb_ref) && ($deb_res <= $fin_ref)) || (($fin_res <= $fin_ref) && ($fin_res >= $deb_ref))){
$chevauche=1;
echo "<script language='javascript'>"
."alert('Matériel non disponible à cette date.')"
."</script>";
}

if( ($deb_res<=$deb_ref) && ($fin_res>=$fin_ref)){
$chevauche=1;
echo "<script language='javascript'>"
."alert('Réservation déjà existente \n dans cet intervalle de dates')"
."</script>";
}

}


if ($nom_demandeur && $jour_debut && $mois_debut && $an_debut && $jour_fin && $mois_fin && $an_fin && !$chevauche){

//insertion de la réservation dans la base
$sql_date_deb=$an_debut."-".$mois_debut."-".$jour_debut;
$sql_date_fin=$an_fin."-".$mois_fin."-".$jour_fin;

$result=mysql_query("INSERT INTO res_mat (id, deb, fin, nom, prenom, service, poste, mat) VALUES ($id, $sql_date_deb, $sql_date_fin, $nom_demandeur, $prenom_demandeur, $service_demandeur, $poste_demandeur, $commentaire)");
if ($result){

//envoi de mail
$materiel2=urldecode($mat);
$name = "Site intranet";
$from = "[email protected]";
$php_header = "From: $name <$from>\n"."Message posté depuis le site intranet :";
//$destinataire = "[email protected]";
$destinataire = "[email protected]";
$sujet = "réservation matériel de bricolage";
$message = "$prenom_demandeur $nom_demandeur \r\n (service : $service_demandeur - poste : $poste_demandeur) \r\n souhaite emprunter le matériel suivant :\r\n $materiel2 \r\n avec : \r\n $commentaire \r\n du $jour_debut/$mois_debut/$an_debut au $jour_fin/$mois_fin/$an_fin";
mail($destinataire, $sujet, $message, $php_header);
echo "<script language='javascript'>"
."alert('Réservation effectuée')"
."window.close()"
."</script>";


}
else{
echo "<script language='javascript'>"
."alert('Réservation non effectuée')"
."window.close()"
."</script>";
}


}

?>
<p><center>
<a href="#" onClick="window.close()"><i><font color="#6699CC">fermer la fenetre</font></i></a>
</center></p>

</body>
</html>


c'est dans cette nouvelle page que je n'arrive pas à récupérer les variables...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

30 mai 2005, 14:31

A la fin de la première page, j'ai remarqué une erreur :
<a href=modules/Bricolage/form_bri.php?id=", $temp[id_mat], "&mat=", urlencode($temp[Type_materiel]),"' target=_blank>réserver</a>
Doit être écrit :
<a href=modules/Bricolage/form_bri.php?id=".$temp[id_mat]."&mat=".urlencode($temp[Type_materiel])."' target=_blank>réserver</a>
La caractère de concaténation est . par ,
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

30 mai 2005, 14:31

Veuillez prendre la peine de créer un message clair et concis.
N'hésitez pas à utiliser les balises

Code : Tout sélectionner

[/b] et [b][php][/b] afin de rendre l'affichage de votre code lisible et compréhensible par tous.[/color] De plus, prenez le temps de bien rédiger votre message afin d'y inclure le plus de détails possibles. Les messages du style "ça marche pas" n'aident d'aucune façon la résolution du problème. Question précise, réponse précise! L'inverse est aussi valable : Question de mer**, réponse de mer**. [/quote][quote="Hatice"]voila ma page qui s'appel index.php :?> <table width=500 border=0 align="center"> <tr bgcolor=#6699CC> <td> <div align="center"> <font face="Arial, Helvetica, sans-serif" color="#FFFFFF"> Matériel </font> [/quote]
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Hatice
Invité n'ayant pas de compte PHPfrance

30 mai 2005, 16:13

Le probleme persiste

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

30 mai 2005, 16:25

J'ai trouvé !!!

Quand tu met des variables dans l'url, dans le script suivant, tu doit les récupérer avec la super-variable GET
 //récupération variable url
$materiel1 =$id;
$materiel = urlencode($mat);
Doit donc être remplacé par
 //récupération variable url
$materiel1 =$GET['id'];
$materiel = urlencode($GET['mat']);
Mais pourquoi veut tu encodé une variable pour la passer en url APRES l'avoir passé dans l'url ? Si tu compte la décoder, c'est
 //récupération variable url
$materiel1 =$GET['id'];
$materiel = urldecode($GET['mat']);
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 2144 Messages

30 mai 2005, 17:57

un tag html d'option dans un select ça ne doit pas se fermer ??
genre
<option> </option>
Ou c'est moi qui flash ??

Mammouth du PHP | 19672 Messages

30 mai 2005, 17:59

En html 4 ce n'est pas obligatoire
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
fab
ViPHP | 2657 Messages

30 mai 2005, 17:59

Non non ça doit se fermer je pense que si il reste ouvert le validateur fait une sale tete mais c'est pas ça qui fait que son script php capote.
Puis merci de ne pas poster des tartines de code!!!!!!!!!!!! de toute façon ça sert a rien car très peu de personnes vont s'amuser a les lires surtout quand elles sont inutiles et pas dans des balises

Invité
Invité n'ayant pas de compte PHPfrance

31 mai 2005, 09:16

Merci pour toutes vos réponses mais Le probleme persiste :(

Mammouth du PHP | 19672 Messages

31 mai 2005, 09:20

Merci pour toutes vos réponses mais Le probleme persiste :(
Ça nous facilite drôlement la tâche comme retour :?

Dans la page 2, tu vas faire un petit ajout de débuggage:
/* ---- débug ---- */
echo("<pre>");
var_dump($_GET);
echo("</pre>\n");
/* --------------- */
Reviens nous avec le résultat.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: