probleme d'affichage de données

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 : probleme d'affichage de données

Re: probleme d'affichage de données

par Mazarini » 26 sept. 2011, 14:02

$id = $_POST[select];
Erreur de syntaxe : manque des quotes

$sql = "SELECT * FROM livres where id=".$id ;
Erreur sur le contenu de $id : vérifier le contenu de $_POST['select'] : mauvais index ? mauvaise variable ($_GET) ?

J'ai du mal avec la ligne :
echo '<option value="'.$resultat['id'].'" onclick="affiche(\'<br /> <br /><br /> \',\'descr\')"><br />'. $resultat['id'] . '</option>'."\n";

Re: probleme d'affichage de données

par Sabrina » 26 sept. 2011, 13:41

J'ai bien lu le tutos, et je pense que j'ai pas de probleme de syntaxe, veuillez versifier avec moi et voici mon code :
 <td width="188" height="72"  > <p class="header_01 Style2 "><strong>Veuillez choisir l'ouvrage &agrave; modifier :    </strong>
	   <?php

echo '<select  name="select" class="Style2" >'."\n";
       
     include "connexion.php";
   
    $sql = "SELECT id,Titre, Auteur, Cote, Disponibilite, Inventaire  FROM livres ORDER BY Titre ";
    $ReqLog = mysql_query($sql);
   
         while ($resultat = mysql_fetch_array($ReqLog))
                 {
       echo '<option value="'.$resultat['id'].'" onclick="affiche(\'<br />           <br /><br />                     \',\'descr\')"><br />'. $resultat['id'] . '</option>'."\n";
       }
 echo '</select>'."\n";
?>
	 </p>
</td>

  <td width="896" height="458" align="center"><form id="form1" name="form1" method="post" action="">
<p align="center">&nbsp;</p>
 <?php 
  include 'connexion.php';

    $id = $_POST[select];
	 
	 $sql = "SELECT * FROM livres where id=".$id ;  
     $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
	
	if ($req) {
  $row = mysql_fetch_assoc($req);

 $inv = $row['Inventaire'];
$tit = $row['Titre'];
$aut = $row['Auteur'];
$cot=$row['Cote'];
$mE=$row['Maisonedition'];
$illus=$row['Illustration'];
$forma=$row['Format'];
$pag=$row['Pages'];
$collec=$row['Collection'];
$isbn=$row['ISBN'];
$mot=$row['Mots'];
$resum=$row['Resume'];
$img=$row['Image'];
$disp=$row['Disponibilite'];
}
?>

<p align="center">&nbsp;</p>

<p>
<strong> Titre : </strong>  <input name="titre" type="text" size="118"  value="<?php echo $tit; ?>"/>
</p>

<p>
<strong>Auteur(s) : </strong>   <input name="auteur" type="text" size="86" value="<?php echo $aut; ?>"/>
 
<strong>Cote :</strong>  <input name="cote" type="text" size="19" value="<?php echo $cot; ?>"/>
  </p>


<p>
<strong> Edition :</strong>  <input name="maisonE" type="text" size="118" value="<?php echo $mE; ?>"/>
 </p>
<p>&nbsp;</p>

<p>
<strong>Illustration : </strong>  <input name="illustration" type="text" size="42" value="<?php echo $illus; ?>" />
 
<strong>Format :</strong>  <input name="format" type="text" size="35" value="<?php echo $forma; ?>"/>
 
<strong>Pages :</strong>  <input name="pages" type="text" size="11" value="<?php echo $pag; ?>"/>
 </p>
<p>&nbsp;</p>

<p><strong>Collection :</strong>  <input name="collection" type="text" size="47" value="<?php echo $collec; ?>"/>
  
<strong>ISBN :</strong>&nbsp;  <input name="isbn" type="text" size="23" value="<?php echo $isbn; ?>" />
  
<strong>Inventaire :</strong>&nbsp;&nbsp;  <input name="inventaire" type="text" size="15" value="<?php echo $inv; ?>"/></p>

<p><strong>Mots Cl&eacute;s  :</strong>  <input name="mots" type="text" size="118" value="<?php echo $mot; ?>"/></p>
<p>&nbsp;</p>

<p><strong>Resumé : </strong>    <textarea name="resume" cols="89" value="<?php echo $resum; ?>"></textarea>   </p>
<p>&nbsp;</p>

<p><strong>Disponibilit&eacute; : </strong>    <input name="dispo" type="text" size="20" value="<?php echo $disp; ?>"/> 
   <strong>Image : </strong>    <input name="img" type="text" size="20" value="<?php echo $img; ?>"/>

<p>     <input type="submit" value="Enregistrer"  name="Submit" />  </p>

</form>
</td>


Re: probleme d'affichage de données

par moogli » 23 sept. 2011, 18:03

Perso je te conseil de revoir la déclaration des variables et notamment l'utilisation des chaînes de caractères (qui plus est en index de tableau) !


Ton problème depuis le début c'est le fait que tu ne connais pas les bases relit bien les Tutos que j'ai indiqué dans mon 1er messages, si tu les comprend ça va rouler tous seul !


@+

Re: probleme d'affichage de données

par Sabrina » 23 sept. 2011, 16:19

Merci, j'ai déja met tous mon code au début quand j'ai poser mon sujet,

mais voici les lignes de 58 à 67:
<?php 
  include 'connexion.php';

    // $id = $_POST[select];
	 
	 $sql = "SELECT * FROM livres where id=".$id ;  
     $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
	
	if ($req) {
  $row = mysql_fetch_assoc($req);
je comprends que mon problem est à la ligne 63 qui est : " $sql = "SELECT * FROM livres where id=".$id ; "
où il me manque l'identification du id dans la ligne 62 // $id = $_POST[select];
quand je fais cette déclaration j'ai un autre message d'erreur :

Notice: Use of undefined constant select - assumed 'select' in C:\wamp\www\biblio\Modiflivres.php on line 61

Notice: Undefined index: select in C:\wamp\www\biblio\Modiflivres.php on line 61
Erreur SQL !
SELECT * FROM livres where id=
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Re: probleme d'affichage de données

par macgawel » 23 sept. 2011, 12:09

Notice: Undefined variable: id in C:\wamp\www\biblio\Modiflivres.php on line 63
Message de PHP.
Note : la variable $id n'est pas définie, ligne 63 du fichier Modiflivres.php.

Vu que tu ne nous donnes pas le code complet, on ne peut pas vraiment dire grand-chose...
Regarde dans le fichier Modiflivres.php, à la ligne 63. A priori tu utilises une variable - $id. Cette variable n'est pas définie. A toi d'essayer de comprendre pourquoi, d'où elle est censée venir, etc.
Au minimum, donne-nous le code correspondant (genre les 2/3 lignes avant et après)....
Erreur SQL !
SELECT * FROM livres where id=
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Message de SQL :
Vous avez une erreur de syntaxe. RTFM :mrgreen:
Requête concernée : SELECT * FROM livres where id=
Elle ne te choque pas ? :roll:

Re: probleme d'affichage de données

par Sabrina » 23 sept. 2011, 11:42

Merci AB pour votre explication, cava mieux .

et pour le code rien n'est changé j'ai le même msg d'erreur affiché :

Notice: Undefined variable: id in C:\wamp\www\biblio\Modiflivres.php on line 63
Erreur SQL !
SELECT * FROM livres where id=
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Re: probleme d'affichage de données

par Mazarini » 22 sept. 2011, 17:12

Je m'auto-cite.
...
$id à partir de $_POST['id'] avec vérification numéricité et absence de quote

En fait ce n'est peut être pas $_POST['id'], $_POST['select'] ?

Re: probleme d'affichage de données

par AB » 22 sept. 2011, 17:10

je sais pas ou est le problème aussi je sais pas la différence entre les ' et les "
Si tu veux continuer à faire du php il est urgent de faire la différence :wink: Les variables mises entre simple quote (') ne sont pas interprétées (elles ne prennent pas la valeur qu'elle représente).

cela dit sur ce forum, pour écrire des requêtes on à l'habitude d'employer la concaténation. Au niveau de la coloration syntaxique c'est plus facile pour visualiser les variables, et au niveau du code c'est sans équivoque.
$sql = "SELECT * FROM livres where id=".$id;  


$sql = "SELECT * FROM table where champa ='".$var1."' AND champb = '".$var2."'"; 
Dans la première requête tu n'as pas besoin de mettre de simple quotes pour entourer ta variable car cette variable représente un entier.
Mais bon à savoir que dans tous les cas tu as intérêt à utiliser mysql_real_escape_string

Re: probleme d'affichage de données

par Sabrina » 22 sept. 2011, 15:50

j'ai ajouté le where :
	 $sql = 'SELECT * FROM livres where id=".$id" ' ;  
mais rien n'est affiché,
et j'ai essayé aussi
	 $sql = 'SELECT * FROM livres where id='.$id' ' ;  
j'ai un msg d'erreur:
Parse error: parse error in C:\wamp\www\biblio\Modiflivres.php on line 61

je sais pas ou est le problème aussi je sais pas la différence entre les ' et les "

Re: probleme d'affichage de données

par moogli » 22 sept. 2011, 11:48

oui ta variable est vide.

pourquoi ? parce que je pense que tu a bêtement copier le code de Mazarini et que tu sais pas l'adapter ?
et ceci est confirmé par le message d 'erreur de php :
Notice: Undefined variable: id in C:\wamp\www\biblio\Modiflivres.php on line 61
=> variable $id n'existe pas ligne 61

effectivement au vu de ton précédent elle ne peux pas exister :)

comment résoudre ton problème :
tu souhaite récupérer les info d'un seul livre.

pour cela tu utilise la clause where de mysql => http://www.phpdebutant.org/article63.php
il te faut récupérer l'info sélectionnée dans le formulaire d'avant http://www.lephpfacile.com/cours/8-recu ... ormulaires

avec tout ça ton code doit fonctionner ;)

@+

Re: probleme d'affichage de données

par Sabrina » 22 sept. 2011, 11:24

J'ai ajouté dans ma requette le where mais aussi ca ne marche pas et affiche ce message d'erreur :
Notice: Undefined variable: id in C:\wamp\www\biblio\Modiflivres.php on line 61
Erreur SQL !
SELECT * FROM livres where id=
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1


avez vous une idée ???

Re: probleme d'affichage de données

par Mazarini » 21 sept. 2011, 13:51

$sql = 'SELECT * FROM livres where id='.$id;
Sans le where, tu lis un enregistrement quelconque (le premier sauf réorganisation de la base)

$id à partir de $_POST['id'] avec vérification numéricité et absence de quote

probleme d'affichage de données

par Sabrina » 21 sept. 2011, 12:41

bjr,
j'ai une table "livres", qui contient les champs : "id,Titre, Auteur, Cote, Disponibilite, Inventaire...."
je fais une application qui sert à afficher puis modifier, les données de la table, aprés le choix de l'id du livre à modifier dans une liste,

Mon problem consiste à :
Les données sont affichées mais tjrs pour le même livre dont l'id =1 dans ma base malgré que j'ai fais un test, càd qu'il ne prends pas en considération mon choix de l'id #-o
voici mon code espérant trouvé une solution
Merci d'avance
voici le code dont j'ai fais la liste pour choisir l'id du livre à modifier :
 <td width="188" height="72"  > <p class="header_01 Style2 "><strong>Veuillez choisir l'ouvrage &agrave; modifier : </strong>
	   <?php

echo '<select  name="select" class="Style2" >'."\n";
       
     include "connexion.php";
   
    $sql = "SELECT id,Titre, Auteur, Cote, Disponibilite, Inventaire  FROM livres ORDER BY Titre ";
   $ReqLog = mysql_query($sql);
   
         while ($resultat = mysql_fetch_array($ReqLog))
                 {
       echo '<option value="'.$resultat['id'].'" onclick="affiche(\'<br />           <br /><br />                     \',\'descr\')"><br />'. $resultat['id'] . '</option>'."\n";
       }
 echo '</select>'."\n";
?>
	 </p></td>
et voici le code d'affichages des données du livres sélectionnées qui ne marche pas :
 <td width="896" height="458" align="center"><form id="form1" name="form1" method="post" action="">
<?php 
 $sql = 'SELECT * FROM livres ';  
     $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
	
if ($req) {
       $row = mysql_fetch_assoc($req);
 
$inv = $row['Inventaire'];
$tit = $row['Titre'];
$aut = $row['Auteur'];
$cot=$row['Cote'];
$mE=$row['Maisonedition'];
$illus=$row['Illustration'];
$forma=$row['Format'];
$pag=$row['Pages'];
$collec=$row['Collection'];
$isbn=$row['ISBN'];
$mot=$row['Mots'];
$resum=$row['Resume'];
$img=$row['Image'];
$disp=$row['Disponibilite'];
}
?>

  <input name="titre" type="text" size="118"  value="<?php echo $tit; ?>"/>
  <input name="auteur" type="text" size="86" value="<?php echo $aut; ?>"/>
  <input name="cote" type="text" size="19" value="<?php echo $cot; ?>"/>
  <input name="maisonE" type="text" size="118" value="<?php echo $mE; ?>"/>
  <input name="illustration" type="text" size="42" value="<?php echo $illus; ?>" />
  <input name="format" type="text" size="35" value="<?php echo $forma; ?>"/>
  <input name="pages" type="text" size="11" value="<?php echo $pag; ?>"/>
  <input name="collection" type="text" size="47" value="<?php echo $collec; ?>"/>
  <input name="isbn" type="text" size="23" value="<?php echo $isbn; ?>" />
  <input name="inventaire" type="text" size="15" value="<?php echo $inv; ?>"/>
  <input name="mots" type="text" size="118" value="<?php echo $mot; ?>"/>
  <textarea name="resume" cols="89" value="<?php echo $resum; ?>"></textarea>   
  <input name="dispo" type="text" size="20" value="<?php echo $disp; ?>"/>
  <input name="img" type="text" size="20" value="<?php echo $img; ?>"/>
  
<input type="submit" value="Enregistrer"  name="Submit" />
</form></td>


J'attends vos réponses
et merci d'avance