Probléme avec php et mysql
lamou23
Messages postés
218
Statut
Membre
-
avion-f16 Messages postés 19182 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 19182 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];
}
}
?>
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
-
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.'; } ?> -
est ce que c'est faisable sans rajouter id a la table,?
merci -
Oui, mais il faudra passer le nom de la machine par GET.