Probléme avec php et mysql

Fermé
lamou23 Messages postés 178 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 21 mars 2011 - 14 juin 2010 à 20:45
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 14 juin 2010 à 22:46
salut

j'ai une baser de données serveur contenant les champs(nom_machine,SE);

je voudrais créer une liste déroulante qui récupère les noms de la machine, et suivant le nom qu'on selectionne on affiche le système d'exploitation qui lui correspond(SE).


j'ai le code suivant mais il ne marche pas:

<? include("params.inc.php");/*contient les parametre de connexion*/
$table="serveur";

$connexion = mysql_connect($hote,$login,$mdp);
mysql_select_db($bd, $connexion);

$nomchamp="nom_machine";
$requete = "select $nomchamp from $table";
$resultat = mysql_query($requete, $connexion);

/* affichage du composant HTML */?>
<select name='host_id' value ='je voudrais bien récupérer la valeur de host_id ici' <?if(isset($_POST['host_id']) && $_POST['host_id']=='le numéro de la valeur séléctionnée') {
echo " selected ";}?>>
<?
echo "<option>";

while ($ligne = mysql_fetch_array($resultat))
{
echo "<option>";
echo $ligne[$nomchamp];
}
?>
</select>


<?php

if(isset($_POST['host_id']))
{
$requete = "select $nomchamp from $table where nom_machine=$ligne['host_id']";
$resultat = mysql_query($requete, $connexion);
$nblignes=mysql_num_rows($resultat);
for($i=0; $i < $nblignes; $i++) {
$ligne = mysql_fetch_row($resultat);
echo $ligne[0];
}
}

?>

3 réponses

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
14 juin 2010 à 21:02
Ajoute un champ id (TINYINT, AUTO_INCREMENT et UNSIGNED) à ta table.
Pour lister les machines :
<form method="get" action="affiche_se.php">
	<p>
		<?php
		$pdo = new PDO('mysql:host=localhost;dbname=ta_base','root','');

		$sql = 'SELECT * FROM table';
		$req = $pdo->query($sql);

		echo '<select name="id">;'
		while($machine = $req->fetch()) {
			echo '<option value="'.$machine['id'].'">'.$machine["nom"].'</option>';
		}
		echo '</select>';
		$req->closeCursor();
		unset($pdo);
		?>
	</p>

	<p>
		<input type="submit" value="Afficher SE" />
	</p>
</form>


Dans afficher_se.php :
<?php
if(isset($_GET['id']) && (int) $_GET['id'] > 0) {
	$pdo = new PDO('mysql:host=localhost;dbname=ta_base','root','');

	$sql = 'SELECT se FROM table WHERE id='.(int) $_GET['id'];
	$req = $pdo->query($sql);

	if($req->rowCount() > 0) {
		$machine = $pdo->fetch();
		echo 'Système d\'exploitation : '.$machine['se'];
	} else {
		echo 'Machine inexistante.';
	}
	$req->closeCursor();
	unset($pdo);
} else {
	echo 'Mauvaise URL.';
}
?>
0
lamou23 Messages postés 178 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 21 mars 2011
14 juin 2010 à 21:11
est ce que c'est faisable sans rajouter id a la table,?

merci
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
14 juin 2010 à 22:46
Oui, mais il faudra passer le nom de la machine par GET.
0