Afficher les données provenant d'une table SQL

Répondre
caporga
le 25/07/2007 à 08:59
caporga
le code de base est

<?php 
// on se connecte à MySQL
$db = mysql_connect('localhost', 'login', 'password');

// on sélectionne la base
mysql_select_db('nom_de_la_base',$db);

// on crée la requête SQL
$sql = 'SELECT nom,prenom,statut,date FROM famille_tbl';

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
{
// on affiche les informations de l'enregistrement en cours
echo '<b>'.$data['nom'].' '.$data['prenom'].'</b> ('.$data['statut'].')';
echo ' <i>date de naissance : '.$data['date'].'</i><br>';
}

// on ferme la connexion à mysql
mysql_close();
?>


Note du modérateur : on te l'a déjà dit une fois : LE BB-CODE !!!
caporga
caporga
le 25/07/2007 à 09:28
caporga
Globule à soulever un problème hier, je n'ai pas de tableau php derrière, je sais que je débute en php mais il me semble que (echo '<b>'.$data['nom'].' '.$data['prenom'].'</b> ('.$data['statut'].')';
echo ' <i>date de naissance : '.$data['date'].'</i><br>'; ) suffit à écrire les tuples sur la page web
caporga
caporga
le 25/07/2007 à 10:15
caporga
je viens de tester une chose ... avec le code suivant et ma connection n'est pas active, ça vient donc de la base de donnée qui ne renvoit pas mes infos ou mon code qui ne si connect pas

<?
$connexion = mysql_connect($hote,$utilisateur,$password);
if ($connexion>0)
echo "connexion effectuée";
else
echo "pas de connexion active";
?>


Note du modérateur : 3ème fois : LE BB-CODE !!!
caporga
Necnom
le 26/07/2007 à 01:43
Necnom
Salut!
N'oublie pas, quand tu écris des codes, de les tapper entre les balises [ code][/code ].
Aulieu d'écrire
$hote
écris directement le nom de l'hote ... généralment c'est localhost .
Et ne met pas de variables ( si tu en as mis) pour l'utilisateur et le password non plus.
Dans ton code tu fais un if, mais, tu as oublié les accolades "{}" avant et après les echos .
essaie ton code, incu dans ton fichier php.
<?  
$connexion = mysql_connect ('localhost', 'user', 'mdp');
if ($connexion != $null) {
echo "connection effectuée"; }
else {
echo "pas de connection active";
}
mysql_close();
?>

voilà. Mais si tu rentres le bon mot de passe et le bon pseudo ainsi que le bon hote, il ne devrait pas y avoir de problème.
Necnom :)
caporga
le 26/07/2007 à 18:36
caporga
salut t'es un chef ...
J'ai compléter ton code et là solution;... Le message s'affiche " connection ok - impossible d'ouvrir la base de donnée"

à tu une idée de pourquoi ????

a+
cap

$connexion = mysql_connect ("mysql5-1","nectarin","*********");
if ($connexion != $null) {
echo "connection effectuée"; }
else {
echo "pas de connection active";
}
mysql_select_db($base,$lien)
or die ("impossible d'ouvrir $base : "
.mysql_error());
etc...
caporga
Necnom
le 26/07/2007 à 23:17
Necnom
Je ne pense pas que ça soit une bonne idée de procéder ainsi pour vérifier ta base. Surtout parce que $base n'est pas défini, dans ce cas c'est $connexion .
Je te propose de revoir certaines choses dans ton "code base":
-Dans ta requête, laisse un espace entre chaque demande.

$sql = 'SELECT nom, prenom, statut, date FROM famille_tbl';

Vérifie aussi que ta table est bien famille_tbl ( au début tu proposes membres_tbl.

- Vérifie aussi, les champs. Si nom, prénom statut etc... existent bien.

- Pour le while, essaie de remplacer par celui-ci :
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_array($req))


Bon courage!
Necnom :)
Lefounard
le 27/07/2007 à 11:23
Lefounard
Tiens je te donne une version du code un peu plus "propre" que le tient de départ :

/*----------------------------- fichier constantes.php ------------------------------------*/ 
<?php
/* Identifiants Connexion MySQL*/
define('BDD','mom_de_la_base');
define('PASS','password');
define('LOGIN','login');
define('SERVEUR_BDD','localhost');

/* Tables MySQL*/
define('TAB_FAM','famille_tbl');
?>
/*------------------------------fin fichier constantes.php-----------------------------------*/

/*------------------------------ fichier affiche_famille.php--------------------------------*/
<?php
/*
Definition de la position de la racine par rapport au fichier
On suppose que le fichier constantes.php est positionnes a la racine
*/

define('ROOT','.');

include_once(ROOT.'constantes.php');


/*
Connexion a la bdd
On utilises les constantes du fichier constantes.php
Lors d'un changement de bdd, on a juste a change a un seul endroit les valeurs,
c'est-a-dire dans constantes.php
Tu peux aussi mettre la connexion dans un fichier a part que tu inclus
*/

$link = mysql_connect(SERVEUR_BDD,LOGIN,PASSWORD);
if (!$link) {
/*
Tu peux appelle ici une fonction (fonction a toi de l'ecrire) qui te sauvegardera l'erreur dans un fichier texte
par exemple :
$err=mysql_error();
error_mysql_log($err, $req,__FILE__,__LINE__);

Ensuite du redirige sur une autre page dans laquelle tu indiques que la base de donnée est inacessible
*/
header('Location : basedown.php');
}

$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
/*
Tu peux appelle ici une fonction (fonction a toi de l'ecrire) qui te sauvegardera l'erreur dans un fichier texte
par exemple :
$err=mysql_error();
error_mysql_log($err, $req,__FILE__,__LINE__);

Ensuite du redirige sur une autre page dans laquelle tu indiques que la select de la base de donnée a echoue
*/
header('Location : basedown.php');
}

define('LINK',$link)

/* Affichage des donnees */

if(!is_resource(LINK))
{
header( 'Location: basedown.php');
}

$sql = 'SELECT nom,prenom,statut,date FROM famille_tbl';
$result = mysql_query($req,LINK);

if (!$result) {
/*
Tu peux appelle ici une fonction (fonction a toi de l'ecrire) qui te sauvegardera l'erreur dans un fichier texte
par exemple :
$err=mysql_error();
error_mysql_log($err, $req,__FILE__,__LINE__);

Ensuite du redirige sur une autre page dans laquelle tu indiques que la select de la base de donnée a echoue
*/
header('Location : basedown.php');
}

/* On separe au maximum le traitement php de l'affichage html, tres important */
include_once('affiche_famille.php');
mysql_close();

?>
/*------------------------------ fin fichier affiche_famille.php--------------------------------*/

/*------------------------------ fichier affiche_famille.html--------------------------------*/

<html>

<?php
/* mysql_fetch_assoc($req) est tres bien dans notre cas, il retourne un tableau d'association clé valeur, qui nous suffit, pas besoin des indices numeriques */
while($data = mysql_fetch_assoc($req))
{
?>
<b><?php echo htmlentities($data['nom']).' '.htmlentities($data['prenom']);?></b>(<?php echo htmlentities($data['statut']);?>)
<i>date de naissance : <?php echo htmlentities($data['date']);?></i><br>
<?php
}
?>

</html>

/*------------------------------ fin fichier affiche_famille.html--------------------------------*/


Il peut avoir des erreurs.
Ciao,
I am singing in the rain , I am happy again !!
Lefounard
le 27/07/2007 à 11:26
Lefounard
Pardon grosse erreur (copier/coller arf):
Ligne 86,
remplace affiche_famille.php
par affiche_famille.html

Tu peux aussi rajouter un mysql_free_result($parametre) (mattes le man) dans le php.
Ciao,
I am singing in the rain , I am happy again !!
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours