Pb requete mysql

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 : Pb requete mysql

Re: Pb requete mysql

par le Piaf » 10 janv. 2010, 23:10

Merci Ryle pour ton aide ca fonctionne parfaitement. Merci aussi pour les infos concernant les differents mysql_fetch.

Re: Pb requete mysql

par Ryle » 10 janv. 2010, 20:00

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

par le Piaf » 10 janv. 2010, 19:36

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

par Ryle » 10 janv. 2010, 11:39

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 :)

Pb requete mysql

par le Piaf » 09 janv. 2010, 10:08

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