Page 1 sur 2

Liste déroulante

Posté : 16 nov. 2005, 15:04
par betman
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

Posté : 16 nov. 2005, 15:14
par Cyrano
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";
}

Posté : 16 nov. 2005, 15:15
par VaN
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 ?

Re: Liste déroulante

Posté : 16 nov. 2005, 15:17
par mario
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.

Posté : 16 nov. 2005, 15:24
par betman
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 ^^ .....

Posté : 16 nov. 2005, 15:40
par Cyrano
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

Posté : 16 nov. 2005, 15:50
par betman
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>

Posté : 16 nov. 2005, 15:55
par VaN
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 ?

Posté : 16 nov. 2005, 15:56
par charabia
Quand tu regardes la source de ta page tu trouves quoi à ce niveau ?

Posté : 16 nov. 2005, 16:00
par betman
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>

Posté : 16 nov. 2005, 16:03
par jeff
tu est bon pour verifier tes parametre de connection a ta db

Posté : 16 nov. 2005, 16:09
par betman
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.

Posté : 16 nov. 2005, 16:11
par jeff
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";

Posté : 16 nov. 2005, 16:20
par betman
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 ?

Posté : 16 nov. 2005, 16:25
par jeff
tu peut essaye ca
$query = "SELECT * FROM assimilations WHERE  marque2=$_POST['marque2']";
ou $_POST['marque2'] est la variable envoyé par la liste precedente