Salut !
Voila je tourne avec EasyPHP 1.7 . Je me suis mis à PHP il ya quelques heures, mais le développement web ne m’est pas inconnu, j’ai déja travaillé avec ASP/Access.
Alors voila, je veux me faire la main avec Php et Mysql, car je vais les étudier à la fac ;).
J’ai une liste déroulante dans un formulaire. Je veux que cette liste déroulante soit alimenter par ma table type de la base t_liens. Jusque la rien de bien méchant. Le formulaire me renvoit vers une page qui va afficher le résultat d’une requete SQL qui comparera la valeur de la liste déroulante avec un champ d’une autre table de la meme base. En d’autres termes, c’est une relation clé primaire / clé étrangère toute bête.
Le problème est que je n’arrive pas à afficher ma liste déroulante !!
Voila mon code :
[cpp]
Sélectionner le type de site web
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root');
mysql_select_db ('t_liens', $base);
// on remplit la liste déroulante
$sql = "SELECT NomType FROM type order by NomType" ;
$optio = mysql_query($sql,$base) ;
while($row = mysql_fetch_row($optio))
{
print "\t\t".($row[0])."\n";
}
mysql_close();
?>
</FORM>[/cpp]
Pouvez-vous m’éclairer? L’erreur est au niveau du select …
Déjà, pour faire généré du code HTML (ou du texte) par PHP, il faut utiliser echo (ou print).
[cpp]<?php
Hello World
?>[/cpp]Ne marche pas (car pour le logiciel PHP, “Hello World” est du code PHP, or ça ne l’est pas)
[cpp]<?php
echo “Hello World”;
?>[/cpp]Marche
Ensuiten dans un et ses choix, la partie “dynamique”, c’est les choix (les ).
[cpp]
Choix 1
Choix 2
Choix 3
...
[/cpp]
Donc, dans ton while, tu mets : [b]Choix X[/b]
Ce qui donne :[cpp]
Sélectionner le type de site web
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root');
mysql_select_db ('t_liens', $base);
// on affiche le et son premier élément qui sert à demander explicitement à l'utilisateur de choisir une option de la liste déroulante
echo "
-- Choississez --"; // Fin de cette partie du code HTML
// Requète MySQL pour récupérer les types de site
$sql = "SELECT NomType FROM type order by NomType";
$optio = mysql_query($sql,$base) ;
while($row = mysql_fetch_row($optio)) // Pour chaque enregistrement de la base
{
echo "\t\t".($row[0])."\n";
}
// Tous nos choix ont été affichés
// On continu le code HTML pour fermer le ...
echo "
";
mysql_close();
?>
[/cpp]
EDIT: J’ai fais les corrections qu’a fait MansonShadow.
j’ai une erreur au niveau du echo "
il me dit cela : Parse error: parse error, unexpected T_STRING, expecting ‘,’ or ‘;’ in c:\siteweb\rechercheliens\accueil.php on line 32
pourtant ca devrai le faire? j’ai essayé de placer un " et de tester plusieurs trucs mais rien n’y fait!
C’est ma faute, j’ai oublié de corriger la partie après le MySQL…
Fait comme MansonShadow a dit, mais si tu veux absolument des " dans ton code HTML final (celui reçu par le navigateur), mets des \ devant les " qui ne servent pas au PHP mais à l’HTML.
[cpp]echo “Hello ‘chour’”; // Affiche : Hello ‘chour’
echo “Hello “chour””; // Affiche : Hello “chour”[/cpp]
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root') or die ("Impossible de se connecter");
echo "Connexion réussie sur le serveur Apache MySql";
echo " ";
mysql_select_db ('web', $base) or die ("Impossible de connecter la bd web");
echo "Connexion réussie a la db";
echo " ";
// on affiche le et son premier élément qui sert à demander explicitement à l'utilisateur de choisir une option de la liste déroulante
echo "Sélectionner le type de site web ";
echo "
--Choississez-- ";
// Fin de cette partie du code HTML
// Requète MySQL pour récupérer les types de site
$sql = "SELECT NomType FROM type order by NomType";
$optio = mysql_query($sql,$base);
while($row = mysql_fetch_row($optio)) // Pour chaque enregistrement de la base
{
echo "\t\t".($row[0])."\n";
}
// On continu le code HTML pour fermer le
echo "
;"
mysql_close($base);
?>
</FORM>[/cpp]
Apparement ma database n’a pas été sauvegardé, et donc je dois la refaire x) !!
J’ai une erreur au niveau du mysql_close($base). Peut etre est-ce au niveau de la syntaxe?
Je continue mes recherches.
Merci encore!