Probléme avec php et mysql

lamou23 Messages postés 178 Date d'inscription   Statut Membre Dernière intervention   -  
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   -
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];
}
}

?>
A voir également:

3 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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   Statut Membre Dernière intervention  
 
est ce que c'est faisable sans rajouter id a la table,?

merci
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Oui, mais il faudra passer le nom de la machine par GET.
0