Liste déroulante

Eléphant du PHP | 206 Messages

16 nov. 2005, 15:04

Bonjour à tous,

Je viens d'effectuer une recherche pour problème mais je n'ai rien vu. C'est toujours plus compliqué que ce que je fais ^^

Donc voilà

J'ai crée une liste déroulante qui en théorie doit récupérer des infos dans la BDD.

Le problème c'est que cela ne m'affiche pas d'erreur...

voici mon code
<select>
  <?php
$query = "SELECT * FROM assimilations ORDER BY marque2";
while($data = mysql_fetch_assoc($req))
    {
    echo '<option>'.$data['$marque'].'</option>';
    }
?>
</select>
<?
include('connection.inc.php');
$query = "SELECT * FROM assimilations ORDER BY marque2";
$result = mysql_query($query);

$nb = mysql_numrows($result);

while ($val = mysql_fetch_array($result))

{ /* On parcoure les résultats de la requête */
	$id_assim = $val["id_assim"];
	$marque2 = $val["marque2"];
  	$cyl2 = $val["cyl2"];
  	$date = $val["date"];
  	$bool = $val["bool"];
	
  echo "
  
    <table width='750'  border='0' align='center' cellpadding='0' cellspacing='0'>
      <tr>
	    <td width='150' class='texte_gras'>$date</td>
        <td width='300' class='texte_gras'>Marque : <a href='assimilation2.php?id_assim=$id_assim' class='texte_lien'>$marque2</a></td>
        <td width='300' class='texte_gras'>cyl : <a href='assimilation2.php?id_assim=$id_assim' class='texte_lien'>$cyl2</a></td>
	  </tr>
	  <tr>
      </tr>
      <tr>
        <td></td>
      </tr>
      <tr>
        <td colspan='5' height='1' bgcolor='#92c7f3'></td>
      </tr><br>
    </table>
	";
}
?>
ah oui autre chose, j'ai un formulaire pour enregistrer des contacts. Jusque là pas de soucis. J'ai également mon script pour récupérer les données afin de pouvoir les modifiers. Et la c'est le drame.

Dans mon formulaire de récupération, lorsque je modifie une donnée et que je valide le formulaire, et bien deviné j'ai une erreur sql, que je ne vois pas !! .....
<?
include('connection.inc.php');

$query = "UPDATE contact SET nom_col='".$_POST['nom_col']."' , identifiant='".$_POST['identifiant']."' , tel='".$_POST['tel']."' , mail='".$_POST['mail']."' , WHERE idcontact='".$_GET['idcontact']."' " ; 

$result = mysql_query($query) or die ('Erreur SQL !<br>'.mysql_error());


header('location: contact.php');
?>

Si une bonne âme pouvais m'aiguiller ca m'aiderai beaucoup

Merci d'avance

Mammouth du PHP | 19672 Messages

16 nov. 2005, 15:14

L'erreur est ici:
while($data = mysql_fetch_assoc($req))
    {
    echo '<option>'.$data['$marque'].'</option>';
    }
Je doute fort que tu aies un champ nommé $marque dans ta base;
Ensuite, tu as un conflit avec les apostrophes, et ajouter un attribut value dans tes options devrait t'aider à récupérer la valeur sélectionnée ; il faut alterner avec des guillemets, ce qui donne:
while($data = mysql_fetch_assoc($req))
{
    echo "<option value=\"". $data['marque'] ."\">". $data['marque'] ."</option>\n";
}
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

VaN
Mammouth du PHP | 1107 Messages

16 nov. 2005, 15:15

1. un probleme ici je dirais :
<select> 
  <?php 
$query = "SELECT * FROM assimilations ORDER BY marque2"; 
while($data = mysql_fetch_assoc($req)) 
    { 
    echo '<option>'.$data['$marque'].'</option>'; 
    } 
?> 
</select>
moi je fais comme ça :
<select> 
  <?php 
$sql = "SELECT * FROM assimilations ORDER BY marque2";
$query = mysql_query($sql); 
while($data = mysql_fetch_array($query)) 
    { 
    echo "<option value=\"$data['marque']\">".$data['marque']."</option>"; 
    } 
?> 
</select>
2. qu'affiche
$result = mysql_query($query) or die ('Erreur SQL !<br>'.mysql_error());
comme msg d'erreur ?
Modifié en dernier par VaN le 16 nov. 2005, 15:17, modifié 1 fois.

Mammouth du PHP | 768 Messages

16 nov. 2005, 15:17

Bonjour à tous,
 <?php
$query = "SELECT * FROM assimilations ORDER BY marque2";
while($data = mysql_fetch_assoc($req))
    {
    echo '<option>'.$data['$marque'].'</option>';
    }
La requête $query n'est pas exécutée car il manque

Code : Tout sélectionner

$req = mysql_query($sql) or die(mysql_error());
$query = "SELECT * FROM assimilations ORDER BY marque2";
$result = mysql_query($query);
Ajoute or die(mysql_error()); pour avoir l'erreur.
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphant du PHP | 206 Messages

16 nov. 2005, 15:24

merci pour votre aide.

Bon cela ne fonctionne toujours pas, j'ai cette erreur qui s'affiche :

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:\program files\easyphp1-7\www\site intranet\production\assimilation.php on line 119

Mais je pense aussi que j'intègre très mal ma balise select dans mon formulaire :
<select>
  <?php
$sql = "SELECT * FROM assimilations ORDER BY marque2";
$query = mysql_query($sql);
while($data = mysql_fetch_array($query))
    {
    echo "<option value=\"$data['marque2']\">".$data['marque2']."</option>";
    }
?>
</select>
<?
include('connection.inc.php');
$query = "SELECT * FROM assimilations ORDER BY marque2";
$result = mysql_query($query);

$nb = mysql_numrows($result);

while ($val = mysql_fetch_array($result))

{ /* On parcoure les résultats de la requête */
	$id_assim = $val["id_assim"];
	$marque2 = $val["marque2"];
  	$cyl2 = $val["cyl2"];
  	$date = $val["date"];
  	$bool = $val["bool"];
	
  echo "
  
    <table width='750'  border='0' align='center' cellpadding='0' cellspacing='0'>
      <tr>
	    <td width='150' class='texte_gras'>$date</td>
        <td width='300' class='texte_gras'>Marque : <a href='assimilation2.php?id_assim=$id_assim' class='texte_lien'>$marque2</a></td>
        <td width='300' class='texte_gras'>cyl : <a href='assimilation2.php?id_assim=$id_assim' class='texte_lien'>$cyl2</a></td>
	  </tr>
	  <tr>
      </tr>
      <tr>
        <td></td>
      </tr>
      <tr>
        <td colspan='5' height='1' bgcolor='#92c7f3'></td>
      </tr><br>
    </table>
	";
}
?>

Ne criez pas ^^ .....

Mammouth du PHP | 19672 Messages

16 nov. 2005, 15:40

Si tu avais copié mon code, tu n'aurais pas eu ce problème: la concaténation est mal faite: correction de la ligne en erreur:
echo "<option value=\"". $data['marque2'] ."\">".$data['marque2']."</option>";
Observe copmme j'ai séparé au niveau de la première variable
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 206 Messages

16 nov. 2005, 15:50

cyrano j'ai copié ton code, et cela ne fonctionne pas non plus. Je n'ai pas de message d'erreur...

<select>
<?php
$sql = "SELECT marque2 FROM assimilations";
$query = mysql_query($sql);
while($data = mysql_fetch_array($query))
{
echo "<option value=\"". $data['marque2'] ."\">".$data['marque2']."</option>"; }
?>
</select>

VaN
Mammouth du PHP | 1107 Messages

16 nov. 2005, 15:55

y'a t'il quelque chose dans ta base de données au moins ? aucune erreur d'orthographe pour le nom de la table et du champ ?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 nov. 2005, 15:56

Quand tu regardes la source de ta page tu trouves quoi à ce niveau ?

Eléphant du PHP | 206 Messages

16 nov. 2005, 16:00

oui j'ai des données dans ma table, je viens de bien veiller à l'orthographe, et la syntaxe est bonne.

Dans mon code source j'ai une erreur

Code : Tout sélectionner

<select> <br /> <b>Warning</b>: mysql_query(): Accès refusé pour l'utilisateur: 'ODBC@localhost' (mot de passe: NON) in <b>c:\program files\easyphp1-7\www\site intranet\production\assimilation.php</b> on line <b>115</b><br /> <br /> <b>Warning</b>: mysql_query(): A link to the server could not be established in <b>c:\program files\easyphp1-7\www\site intranet\production\assimilation.php</b> on line <b>115</b><br /> <br /> <b>Warning</b>: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in <b>c:\program files\easyphp1-7\www\site intranet\production\assimilation.php</b> on line <b>116</b><br /> </select>

Mammouth du PHP | 1311 Messages

16 nov. 2005, 16:03

tu est bon pour verifier tes parametre de connection a ta db

Eléphant du PHP | 206 Messages

16 nov. 2005, 16:09

il y a un autre formulaire dans la page qui lui me rapatrie très bien les données, et les 2 scripts utilisent le même fichier de connection.

Mammouth du PHP | 1311 Messages

16 nov. 2005, 16:11

c'est normal que ca fonctionne pas
tui appel une requete avant ta connection

Code : Tout sélectionner

$query = "SELECT * FROM assimilations ORDER BY marque2"; while($data = mysql_fetch_assoc($req)) { echo '<option>'.$data['$marque'].'</option>'; } ?> </select> <? include('connection.inc.php'); $query = "SELECT * FROM assimilations ORDER BY marque2";
a remplacer par
include('connection.inc.php');
$query = "SELECT * FROM assimilations ORDER BY marque2";
$req=mysql_query($query);
while($data = mysql_fetch_assoc($req))
    {
    echo '<option>'.$data['$marque'].'</option>';
    }
?>
</select>
<?

$query = "SELECT * FROM assimilations ORDER BY marque2";

Eléphant du PHP | 206 Messages

16 nov. 2005, 16:20

voilà avec votre cela fonctionne enfin ^^
<select>
<?
include('connection.inc.php');
$query = "SELECT marque2 FROM assimilations";
$req=mysql_query($query);
while($data = mysql_fetch_assoc($req))
    {
echo "<option value=\"". $data['marque2'] ."\">".$data['marque2']."</option>";    }
?>
</select>
Mais ça n'est pas tout, l'objectif de cette liste est de trier par marque les données et donc ne n'afficher que les données de la marque concernée.
Et la j'avoue que je ne vois pas trop comment faire.

Je suis dans le flou...

A quel niveau faut-il effecteur le triage ?

Mammouth du PHP | 1311 Messages

16 nov. 2005, 16:25

tu peut essaye ca
$query = "SELECT * FROM assimilations WHERE  marque2=$_POST['marque2']";
ou $_POST['marque2'] est la variable envoyé par la liste precedente