Page 1 sur 2

interroger sa base de données?

Posté : 10 févr. 2007, 08:06
par DRA
Bonjour à tous et toutes, voila je suis nouveau dans le monde du php et sur le site, donc ne soyez pas etonné si je pose des question de neophyte.

Je viens de creer un site web sur un jeux de cartes à collectioner (magic the gathering) et j'aimerai pouvoir afficher la liste de mes cartes sur mon site.

J'ai creer une base de donnée sur exel que j'ai exportée vers access, ensuite je l'ai sauvegarée en .txt et chargée sur phpmyadmin (hebergeur free).

ici on voi que la table 'cartes' est créee:
http://mymtg.free.fr/bdd1.JPG (je l'ai changée en wp_listescartes)

ici on voi ce que contien la table:
http://mymtg.free.fr/bdd2.JPG

jusqu'ici j'espere ne pas avoir fait d'erreur!

J'aimerai que vous m'aidiez a trouver comment faire pour que cette liste apparaisse sur mon site, le but etant de pouvoir la mettre a jour chez moi et en chargeant le fichier qu'elle se modifi automatiquement.
j'envisage egalement de pouvoir activer des liens pour que l'on puisse voir la photo correspondant a la carte choisi.

j'espere que je me suis bien exprimé, le cas echeant faite le moi savoir ;)
merci!


ps:Dans l'avenir j'aimerai proposer au visiteur de mettre en ligne leur liste par le biais d'une interface sur le site mais cela est secondaire.

Posté : 10 févr. 2007, 12:03
par Ultim4T0m
Bonjour,

Voici un petit tuto sur l'interrogation de base de donnée MySQL ;)

http://phpdebutant.org/article66.php

N'hésite pas à poser des questions si tu n'y arrives pas avec ça.

Posté : 10 févr. 2007, 15:33
par DRA
merci je vais aller etudier se tuto ;) en esperan qu il me soit plus utile ou plutot que je le comprenne lol

edit; super le tuto en 10 min a peine je suis arrivé a un resultat, vraiment top le tuto encore merci ;)

Posté : 10 févr. 2007, 16:07
par DRA
pour l'instant j'obtiens ca:

http://mymtg.free.fr/lc2.php
avec ce code:
<?php
// on se connecte à MySQL
$db = mysql_connect('localhost', '**', '**');

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

// on crée la requête SQL
$sql = 'SELECT * FROM `wp_listescartes` LIMIT 0, 60 ';

// 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 ''.$data['nom_cartes'].$data['Possetion'].'';
echo ''.$data['quantité_vf'].$data['quantité_vo'].'';
    }

// on ferme la connexion à mysql
mysql_close();
?> 
j'aimerai les faire apparitre dans un tableau avec le nom de chaque colonne, as tu un tuto ;)
merci

Posté : 10 févr. 2007, 16:44
par Ryle
Hum.. je suis sur que ça tu dois pouvoir y parvenir toi même sans tuto :)

Le php sert à générer du code html qui est ensuite lu et interprêté par ton navigateur. Première chose indispensable à tout développement web est donc de bien connaitre le html.

A partir de là, tu conçois le résultat que tu souhaite obtenir en html, et tu remplace ensuite le code html statique par du code php dynamique.

Pour un tableau, ton code html doit ressembler à ceci :

Code : Tout sélectionner

<table> <tr> <td> ... </td> <td> ... </td> </tr> ... </table>
<table> étant un tableau, <tr> une ligne du tableau et <td> une cellule.

Pour faire une ligne par enregistrement en base, il te suffit donc de boucler sur les différentes lignes renvoyées par ta base de données. Et pour chaque cellule, d'afficher le contenu de ton champ en base :)

Tu ne devrais pas avoir trop de mal à y parvenir et ça te fera un bon exercice :)


Une petite remarque : il est inutile d'ajouter des chaines vides à d'aute chaine, c'est comme si tu faisait un +0 à un nombre, alors autant alléger ton code dans ces cas là :) :
echo $data['nom_cartes'].$data['Possetion']; 
echo $data['quantité_vf'].$data['quantité_vo']; 
bon ceci je parle d'une manière générale, dans ton cas plutot que de les supprimer, tu vas pouvoir remplacer ces chaines vides par quelques balises html de tableau par exemple :)

Posté : 11 févr. 2007, 02:33
par DRA
salut pour la creation du tableau pas de probleme mais je ne trouve pas le requete pour implanter la liste dans le tableau j'ai essayer plein de commande mais je n'y arrive pas.

Posté : 11 févr. 2007, 06:35
par VaN
<?php
// 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 ''.$data['nom_cartes'].$data['Possetion'].'';
echo ''.$data['quantité_vf'].$data['quantité_vo'].'';
    }

?> 
D'abord, tu ouvres ta table, AVANT la boucle :
echo '<table width="100%">';
puis dans la boucle, tu écris tes TR et TD, de façon à ce que un nouveau TR soit généré à chaque tour de boucle. A l'intérieur de ces TD, t insère tes données PHP, comme si c'etait du texte HTML :
echo '<tr>';
echo '<td>'.$data['nom_cartes'].$data['Possetion'].'</td>';
echo '<td>'.$data['quantité_vf'].$data['quantité_vo'].'</td>';
echo '</tr>';
en espérant t'avoir aidé.

Posté : 11 févr. 2007, 20:42
par DRA
merci, je vais essayer de suite ;)

Posté : 11 févr. 2007, 21:11
par DRA
je viens de tester mais les données ne se mettent pas dans le tableau, j'ai du faire une erreur:
 <?php
// on se connecte à MySQL
$db = mysql_connect('localhost', 'mymtg', 'killer');

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

// on crée la requête SQL
$sql = 'SELECT * FROM `wp_listescartes` LIMIT 1, 60 ';

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

//incrustation dans la tableau

echo '<table width="100%">'; 


// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
 {
echo '<tr>';
echo '<td>'.$data['Possetion'].$data['nom_cartes'].'</td>';
echo '<td>'.$data['quantité_vf'].$data['quantité_vo'].'</td>';
echo '</tr>';
 }
  // on ferme la connexion à mysql
mysql_close();
?> 

Posté : 11 févr. 2007, 21:14
par Ajoloca
Bonsoir,

As-tu pensé à fermer la balise <table> ???

Posté : 11 févr. 2007, 21:22
par DRA
merci ajoloca, en effet le proble venai de ma balise ou en tous cas c'est en cherchant des info sur balise table que je suis parvenu a un resultat, voici mon code:
 <?php
// on se connecte à MySQL
$db = mysql_connect('localhost', 'mymtg', 'killer');

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

// on crée la requête SQL
$sql = 'SELECT * FROM `wp_listescartes` LIMIT 1, 60 ';

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

//incrustation dans la tableau

echo '<table width="100%">'; 
 echo '<table bgcolor="#FFFFFF">'."\n";
        // première ligne on affiche les titres prénom et surnom dans 2 colonnes
        echo '<tr>';
        echo '<td bgcolor="#669999"><b><u>Possetion</u></b></td>';
        echo '<td bgcolor="#669999"><b><u>nom_cartes</u></b></td>';
      echo '<td bgcolor="#669999"><b><u>quantité_vf</u></b></td>';
      echo '<td bgcolor="#669999"><b><u>quantité_vo</u></b></td>' ;
      echo '</tr>'."\n";

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
 {
echo '<tr>';
echo '<td>'.$data['Possetion'].'</td>';
echo '<td>'.$data['nom_cartes'].'</td>';
echo '<td>'.$data['quantité_vf'].'</td>'.'<td>'.$data['quantité_vo'].'</td>';
echo '</tr>';
 }
     
    // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
    {
        echo '<tr>';
        echo '<td bgcolor="#CCCCCC">'.$row["Possetion"].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row["nom_cartes"].'</td>';
      echo '<td bgcolor="#CCCCCC">'.$row["quantité_vf"].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row["quantité_vo"].'</td>';
      echo '</tr>'."\n";
    }
    echo '</table>'."\n";

  // on ferme la connexion à mysql
mysql_close();
?>
maintenan il faut que je trouve comment faire la mise en page, avoir des bordue dans le tableau et que le tsxt soit aligner au centre, ca devrai pas etre tres dur ;)

Posté : 13 févr. 2007, 16:01
par DRA
Salut est ce que vous auriez un ptit lien vers un tuto pour le mise en
page par php, car je n'arrive pas a trouver comment mettre en page mon tableau aligner le text faire apparaitre des bordure merci

Posté : 13 févr. 2007, 17:05
par iclo
Ce n'est pas du php, mais de l'html;
Comme tu l'as vu, pour afficher le contenu de la table, tu as générer du code html avec php (les <table>, <tr><td> et autres)
Si tu veux modifier l'affichage, c'est donc bien sur ces tag html que tu vas devoir agir.
Une recherche sur Google avec comme mots clé "html table" devrait te permettre de trouver beaucoup de cours sur l'Html. Tu peux aussi regardé du côté du Css.

Posté : 13 févr. 2007, 17:06
par VaN
Il n'y a pas vraiment de tuto pour la mis en page PHP. Il y'a une chose à comprendre :

PHP peut te servir à créer du code HTML, comme si c'étais du HTML "normal" (c'est du HTML normal, mais généré par PHP).
echo '<table with="100%">';
est strictement pareil que

Code : Tout sélectionner

<table width="100%">
En passant, il y'a une erreur dans ton code : tu ouvres deux tables à la suite.
echo '<table width="100%">'; 
 echo '<table bgcolor="#FFFFFF">'."\n"; 
[/code]

Posté : 13 févr. 2007, 17:15
par angebleu17
Voici un site qui pourra t'aider à mettre en page ton tableau.

http://www.ping.be/~ping9985/html/thehtml6.htm

J'espére que ça pourra t'aider.