Page 1 sur 1

Pb requete mysql

Posté : 09 janv. 2010, 10:08
par le Piaf
Bonjour,

J'ai un probleme avec cette requete $sql=mysql_query("SELECT id_techno FROM techno WHERE Nom_techno='$techno'");. J'arrive à recuperer la variable $techno (voir debut du code) mais je n'arrive pas à l'inserer dans une requete mysql.

Voici le code
 <?
session_start();
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

  <title>Récupération des données provenant d'un formulaire base</title>
</head>

<body>

 <form method="post" action="gamme.php" enctype="multipart/form-data">  
 
 <?
 
$segment = $_POST['Nom_segment'] ;
$techno = $_POST['Nom_techno'] ;
$_SESSION['Nom_techno'] = $_POST['Nom_techno']; 

echo( "Segment <b>".$segment."</b><br>\n" ) ;
echo( "techno: <b>".$techno."</b><br>\n" ) ;
echo "Our color value is ".$_SESSION['Nom_techno']."<br>";  
 header ('location : gamme.php'); 
 


// Connexion à la base de données  
 include 'connexion.php';
 
$connexion =mysql_connect($host,$user,$password) or die ("connexion au serveur impossible");
mysql_select_db("engi_segment") or die("echec select db".mysql_error());

// Choix du type de la matiere


 echo "<div style='margin-leflt: .5in;margin-top: .5in'>

 <p><b>Quel type de matiere?</b>
 <p>Choissisez dans la liste ci-dessous :\n";   
  
$rs3=mysql_query("select Nom_matiere from matiere"); 
$idr = isset($_POST['Nom_matiere'])?$_POST['Nom_matiere']:null;

 	echo('<select id="Nom_matiere" name="Nom_matiere"=""  >');
	echo('<option value="'.'">'.'</option>');
	 while ($matiere=mysql_fetch_object($rs3)){  	


echo('<option value="'.$matiere->Nom_matiere .'">'.$matiere->Nom_matiere.'</option>' ); 
} 


echo mysql_result($matiere); // Affiche le resultat


echo "<p><input type='submit' value ='validez votre choix'></form>\n";

// Choix du type du module
$sql=mysql_query("SELECT id_techno FROM techno WHERE Nom_techno='$techno'");
echo ("id2".$sql."</b><br>\n");

 echo "<div style='margin-leflt: .5in;margin-top: .5in'>

 <p><b>Quel type de matiere?</b>
 <p>Choissisez dans la liste ci-dessous :\n";   
  
$rs4=mysql_query("select Nom_design from design"); 
$idr = isset($_POST['Nom_design'])?$_POST['Nom_design']:null;

 	echo('<select id="Nom_design" name="Nom_design"=""  >');
	echo('<option value="'.'">'.'</option>');
	 while ($design=mysql_fetch_object($rs4)){  	


echo('<option value="'.$design->Nom_design .'">'.$design->Nom_design.'</option>' ); 
} 


echo mysql_result($design); // Affiche le resultat


echo "<p><input type='submit' value ='validez votre choix'></form>\n";


mysql_close;
            
 ?> 
       </p> 

	 
 
</body>
</html>

Merci pour l'aide

Re: Pb requete mysql

Posté : 10 janv. 2010, 11:39
par Ryle
Ta requête mysql est vraissemblablement correcte... le problème c'est que pour cette requête tu n'utilises pas les fonctions mysql_fetch_* qui permettent de parcourir la ressource mysql renvoyée par la fonction mysql_query(). Du coup tu ne peux pas en récupérer le résultat :)

Par ailleurs, tu devrais utiliser les balises d'ouverture "<?php" plutôt que les short tags "<?" qui ne sont pas toujours autorisées sur le serveur sur lequel sera déployé ton script.
Tu as également un header() qui traine dans ton code, qui ne peut pas marché en l'état (envoyé au navigateur après du code html, et ne respectant pas la syntaxe "Location:" (la majuscule est importante pour certains navigateurs). Quoi qu'il en soit, ce header n'a en toute logique pas sa place ici :)

Re: Pb requete mysql

Posté : 10 janv. 2010, 19:36
par le Piaf
Merci pour les conseils. Par contre que dois je utiliser comme mysql_fetch_, j'ai testé mysql_fetch_object mais ca ne fonctionne pas.

Merci pour l'aide

Re: Pb requete mysql

Posté : 10 janv. 2010, 20:00
par Ryle
Ils ont tous le même effet, c'est simplement la syntaxe qui va changer :
$sql = "SELECT id_techno FROM techno WHERE Nom_techno='$techno'";
$rs=mysql_query($sql);

// Au choix, l'un des mysql_fetch_* suivant :

// Tableau indexé :
if ($row = mysql_fetch_row($rs)) // pratique quand tu ne connais pas les noms des champs renvoyés par le select
  echo $row[0];
// Tableau associatif :
if ($row = mysql_fetch_assoc($rs)) // plus facile à maintenir si l'ordre des éléments de ton select change
  echo $row['id_techno'];
// Tableau indexé + associatif :
if ($row = mysql_fetch_array($rs)) // somme des deux précédents... donc plus lourd et pas forcément plus utile
  echo $row[0] .' ou '. $row['id_techno'];
// Objet :
if ($row = mysql_fetch_object($rs)) // si tu connais un peu la programmation orientée objet
  echo $row->id_techno;

Re: Pb requete mysql

Posté : 10 janv. 2010, 23:10
par le Piaf
Merci Ryle pour ton aide ca fonctionne parfaitement. Merci aussi pour les infos concernant les differents mysql_fetch.