recuperer élément d'une base de donnée

Eléphanteau du PHP | 17 Messages

09 avr. 2010, 14:10

Salut, je suis en train d'apprendre à utiliser les tables avec PHP, je commence par quelque chose de simple:

J'ai créé une base de donnée avec PHP my admin, qui contient 3 colonnes: id (en primary key), nom, et contenu. J'ai entré 8 données, la colonne id va donc de 1 à 8 (en auto increment). La base de donnée s'appelle "budget" et la table s'appelle "miseajour".

J'aimerais utiliser php pour me connecter à la base de donnée, et afficher à la page un élément de mon choix de ce tableau (ce qu'il y a dans la colonne contenu, selon l'id de mon choix).

Mais j'y arrive pas :!:

Voici mon code:
<?php
// 1 on se connecte !
$connection=mysql_connect("localhost", "root", "");

if (!$connection) {
	die("Echec de la connection: " . mysql_error());
}

//2 on choisit sa base de donnée

$db_select = mysql_select_db("budget",$connection);
if (!$db_select) {
	die("Echec de la selection à la BDD: " . mysql_error());
}

//3 on fait sa requête

$resultat=mysql_query("SELECT contenu FROM miseajour");
if(!$resultat){
die("erreur de requete: " . mysql_error() );
}
//4 on utilise les requetes

while($row=mysql_fetch_array($resultat)) {
    echo $row[2];
}

//5 on ferme la connection

mysql_close($connection);

?>
Ca m'affiche le message d'erreur: "Notice: Undefined offset: 2 in mapage.php on line 25" 8 fois d'affilé. (soit le nombre de lignes de ma table). Manifestement ça bloque à l'étape 4... (mais je fais peut-être pas ce qu'il faut non plus à l'étape 3? ) Les étapes 1 et 2 m'ont l'air OK.

Quelqu'un saurait ce qu'il faudrait que je tape pour afficher par exemple ce qu'il y a dans la colonne "contenu" pour id= 5 ? :?:

Eléphant du PHP | 86 Messages

09 avr. 2010, 14:17

Attention, tu mélanges tout !

Lorsque tu fais "$row=mysql_fetch_array($resultat)", la variable $row devient un tableau de données qui contient les éléments de ton SELECT.
Tu ne veux que le champ "contenu" donc $row est un tableau d'une seule case.
Ainsi $row[0] te renverra la valeur du contenu.
Tu peux également faire : $row['contenu']

Eléphanteau du PHP | 17 Messages

09 avr. 2010, 14:26

Ahhh merci je viens de comprendre !

Et donc pour avoir une case et pas toute la colonne j'ai qu'à mettre $row["contenu"] en ajoutant "WHERE id=(numéro de mon choix) dans la requête? Je test ça tout de suite.

EDIT: j'ai testé et ça marche didiou :D Merci