Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2300 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Erreur de variables ou quoi ?

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Erreur de variables ou quoi ?

n°868403
Mikkem
The World Is Yours
Posté le 08-10-2004 à 19:22:17  profilanswer
 

Voila je veux creer un moteur de recherche sur mon site pour ma base de donnée sql de mes album, mais il me met:
 
Notice: Undefined variable: allcriteres in c:\web\session\album.php on line 29
 
Notice: Undefined variable: Album in c:\web\session\album.php on line 34
 
Notice: Undefined variable: artiste in c:\web\session\album.php on line 37
 
Notice: Undefined variable: annee in c:\web\session\album.php on line 43
 
Notice: Undefined variable: finrequete in c:\web\session\album.php on line 49
 
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in c:\web\session\album.php on line 58
 
Je trouve pas la soluce à mes erreur, donc voila la source si qq sais m'aider n'hésité pas ça me rendrais un immense service.
 
Voila la source avec le formulaire.
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Albums</title>
</head>
<form method="post" action="album.php">  
<table align="center">
<tr>
<td>Album : </td><td><input type="text" name="Album"></td>
</tr>
<tr>
<td>Année : </td><td><input type="text" name="annee"></td>
</tr>
<tr>
<td valign="top">Artiste : </td><td><input type="text" name="artiste"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="recherche" value="Cherche"></td>
</tr>
<tr>
<td colspan="2" align="center"><small><input type="checkbox" name="allcriteres" value="oui">Obligatoirement tous les critères</td>
</tr>
</table>
</form>
<body>
<br>
 <?php
 if ($allcriteres == "oui" )
  $operateur="AND";
  else
  $operateur="OR";
 
 if ($Album != "" )
  $finrequete .= " Album LIKE '%$album%'";
 
 if ($artiste != "" )
  if ($finrequete != "" )
  $finrequete .= "$operateur (Artiste LIKE '%$artiste%')";
  else
  $finrequete .= " Artiste LIKE '%$artiste%'";
 
 if ($annee != "" )
  if ($finrequete != "" )
  $finrequete .= "$operateur (Année LIKE '%$annee%')";
  else
  $finrequete .= "Année LIKE '%$annee%'";
   
 if ($finrequete != "" )
  $sql="SELECT * FROM albums WHERE $finrequete";
  else
  $sql="SELECT * FROM albums";
 ?>
 
<?php
   $db = mysql_connect("localhost","root","" );
   $res=mysql_query($sql, $db);
   while ($ligne = mysql_fetch_object ($res))  
    {
 print "<tr>";
 print "<td>$ligne->Album</td>";
 print "<td>$ligne->Artiste>/td>";
 print "<td>$ligne->Année";
 print "</td>";
 print "</tr>";
    }
?>
</body>
</html>
 


---------------
Mikkem
mood
Publicité
Posté le 08-10-2004 à 19:22:17  profilanswer
 

n°868419
skeye
Posté le 08-10-2004 à 19:37:22  profilanswer
 

[:w3c compliant]
 
[edit]
 
$_REQUEST["allcriteres"], etc.


Message édité par skeye le 08-10-2004 à 19:38:23

---------------
Can't buy what I want because it's free -
n°869866
Mikkem
The World Is Yours
Posté le 11-10-2004 à 10:48:31  profilanswer
 

Salut skeye j'ai tenté d'insérer ce que tu m'as donné mais sans succès, c'est surement moi qui m'y prend mal, donc voila je suis tjs autant ds la choucroute.
 
Sinon merci quand même pour ton aide.


---------------
Mikkem
n°869870
Xav_
The only one...
Posté le 11-10-2004 à 10:53:37  profilanswer
 

"Notice: Undefined variable":
tu utilise des variables sans les avoir initialisée (déclarée), rajoute un "if isset($ta_variable)" avant de tester sa valeur.
Les variables en qeustions sont:
allcriteres
Album  
artiste
annee  
finrequete
 
Pour le "Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in c:\web\session\album.php on line 58"
 
C'est que ta requete ne dois renvoyer aucun résultat -> ça bug quand tu veux les parcourir
Rajoute un "if mysql_num_rows>0" avant ton while pour vérifier que tu a récupéré au moins 1 enregistrement ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°869890
Mikkem
The World Is Yours
Posté le 11-10-2004 à 11:23:24  profilanswer
 

Qd je fais ça il me met une erreur les boules je vai tt envoyer chier lol
 
Parse error: parse error, unexpected T_ISSET, expecting '(' in c:\web\session\album.php on line 29
 
Terrible la rapidité de ta réponse t'es un playboy.


---------------
Mikkem
n°869893
skeye
Posté le 11-10-2004 à 11:24:47  profilanswer
 

donne ton code autour de la ligne 29.


---------------
Can't buy what I want because it's free -
n°869916
Xav_
The only one...
Posté le 11-10-2004 à 11:38:40  profilanswer
 

parse error -> erreur de parenthèse ou d'accolade
 
comme te l'a dis skeye, montre nous cette partie du code...
mais si t'a copié bettement mon exemple, il manque effectivment des parenthèse autour du isset, car la condition d'un if se met entre parenthèse --> je vais pas non plus te faire tout le code, j'avais juste filé la fonction ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°869923
Oreste
Posté le 11-10-2004 à 11:41:28  profilanswer
 

Pas tarrible deja la maniere comment tu fous des requetes SQL essaye de concatener correctement genre requete ='select * from table where id='.$id
 
Sinon je crois que Skeye est dans le vrai si tu utilise une version recente de PHP tu ne peux plus recuperer les variable qui sont dans passé en get ou post par leur nom direct, elle sont monté automatiquement dans un tableau de type $_REQUEST[] pour GET et $_POST[]
 
Pour toi ca donnerai :  
 
$finrequete .= "$operateur (Artiste LIKE '%$_REQUEST[artiste]%')";  
  else  
  $finrequete .= " Artiste LIKE '%$_REQUEST[artiste]%'";  

n°869925
Mikkem
The World Is Yours
Posté le 11-10-2004 à 11:42:20  profilanswer
 

Voila le code php à partir de la ligne 28 le reste le formulaire etc ... se trouve au debut de ce topic.
Un grand merci les gars.
 
28 <?php
29  
30 if ($allcriteres == "oui" )
31  $operateur="AND";
32  else
33  $operateur="OR";
34  
35 if ($Album != "" )
36  $finrequete .= " Album LIKE '%$album%'";
37
38 if ($artiste != "" )
39  if ($finrequete != "" )
40  $finrequete .= "$operateur (Artiste LIKE '%$artiste%')";
41  else
42  $finrequete .= " Artiste LIKE '%$artiste%'";
43  
44 if ($annee != "" )
45  if ($finrequete != "" )
46  $finrequete .= "$operateur (Année LIKE '%$annee%')";
47  else
48  $finrequete .= "Année LIKE '%$annee%'";
49  
50 if ($finrequete != "" )
51  $sql="SELECT * FROM albums WHERE $finrequete";
52  else
53  $sql="SELECT * FROM albums";
54 ?>
55  
56 <?php
57   $db = mysql_connect("localhost","root","" );
58   $res=mysql_query($sql, $db);
59  
60   while ($ligne = mysql_fetch_object ($res))  
61    {
62 print "<tr>";
63 print "<td>$ligne->Album</td>";
64 print "<td>$ligne->Artiste>/td>";
65 print "<td>$ligne->Année";
66 print "</td>";
67 print "</tr>";
68    }
69 ?>


---------------
Mikkem
n°869927
Rainbow_Ef​reet
Posté le 11-10-2004 à 11:42:52  profilanswer
 

Dans php.ini regle le error_reporting sur E_ALL & E_Warning au lieu de seulement E_ALL

mood
Publicité
Posté le 11-10-2004 à 11:42:52  profilanswer
 

n°869973
Xav_
The only one...
Posté le 11-10-2004 à 12:35:16  profilanswer
 

rainbow_efreet a écrit :

Dans php.ini regle le error_reporting sur E_ALL & E_Warning au lieu de seulement E_ALL


 
ça n'affichera plus les notices (donc les pb de variables non déclarées) mais ça résoudra pas le pb de requete SQL.
 
Et puis ça c'est pas régler le pb, c'est juste ne plus l'afficher ;)  
celà dis il est vrai que les serveurs en ligne on le réglage: E_ALL & E_Warning


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°869988
Oreste
Posté le 11-10-2004 à 13:02:41  profilanswer
 

lol le but c'est de faire un truc qui marche depuis quand viré l'affichage des erreur est une solution à un bug ?  :lol:

n°870068
Dj YeLL
$question = $to_be || !$to_be;
Posté le 11-10-2004 à 14:17:17  profilanswer
 

Ben ça doit être un truc comme ça non ?
 

Code :
  1. 28 <?php
  2. 29 
  3. 30 if ($_POST['allcriteres'] == "oui" )
  4. 31  $operateur="AND";
  5. 32  else
  6. 33  $operateur="OR";
  7. 34 
  8. 35 if ($_POST['album'] != "" )
  9. 36  $finrequete .= " Album LIKE '%$_POST[album]%'";


 
A modifier pour toutes les variables appellées ...
 
Si tu as un <form method="post" ... la valeurs de tes input est récupérée par $_POST['var_name'] ...
 
ou $HTTP_POST_VARS['var_name'] pour les Php < 5.0 je crois
 
++


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Erreur de variables ou quoi ?

 

Sujets relatifs
transmettre variables depuis pop-up ??[C] [Débutant] Je suis bloqué sur une erreur de syntaxe ....
[.NET] Création d'un nouvel élément : message d'erreur ActiveXErreur avec librairie Pear
Paramètres height/width variables + limite de la fenêtre sous MozillaDécalage des variables?
Ecriture dans un fichier : erreur de retour à la ligne [résolu]erreur de type dans une comparaison de variables
[XSL + XSQL] erreur ORA-01008: not all variables bound[JAVA] erreur d'exécution: variables d'environnement?[résolu]
Plus de sujets relatifs à : Erreur de variables ou quoi ?


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR