Souci de MySQL - Programmation
Dans la même thématique :
Ceci répond-il à votre question ? Oui | Non
 

Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Souci de MySQL
 
Baisse les yeux ... regardes moi quand je te parle
Profil : IDNaute
Plus d'informations

Bonjour/Bonsoir :)

 

Je travaille actuellement sur un site-jeu en cours de préparation.
Je travaille sur un script de news, les pages sont correctes, les données rentrent dans la Base de Données (Titre, contenu et timestamp) ... Seul hic, les informations de la base de données, ben elles s'affichent pas sur ma page d'accueil.

 

Alors, voici mon code sur la page d'accueil :

Citation :

<?php
mysql_connect("sql.hostarea.org", "" );
mysql_select_db("e-nigmes" );
// On récupère les 5 dernières news
$sql = 'SELECT * FROM news ORDER BY id DESC LIMIT 0, 5';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
{
?>
<div class="news">
    <h3>
        <?php echo $donnees['titre']; ?>
        <em>le <?php echo date('d/m/Y à H\hi', $donnees['timestamp']); ?></em>
    </h3>
   
    <p>
    <?php
    $contenu = nl2br(stripslashes($donnees['contenu']));
    echo $contenu;
    ?>
    </p>
</div>
<?php
} // Fin de la boucle des news
?>

 

Je ne vois pas le problème, pourtant, j'ai regardé des tutoriaux et mon code tout l'après-midi :)

 

Votre aide est la bienvenue :)


Message édité par Jeannotdu3 7 le 13-02-2008 à 21:05:33
Liens

Profil : IDNaute
Plus d'informations

Salut,

 

1 seul conseil:

 

évites de mettre sur un forum ton login et ton pass de connexion sur ta Bdd !!!
ça fait désordre.

 


Ensuite, ta requête te retourne une liste de ligne:
http://www.infos-du-net.com/forum/ [...] nnee-mysql

 

Il te faut parcourir les résultats .

 

Ton array donnees, il vient d'où ?

 


de rien!
:)


Message édité par elendilm le 13-02-2008 à 21:04:06
Baisse les yeux ... regardes moi quand je te parle
Profil : IDNaute
Plus d'informations

Ouh la vache, quel con je suis ^^
 
Je laisse mes identifiants ^^
 
A vrai dire, je n'ai jamais compris les array :(
 
Ce array il vient d'une autre page :
 

Citation :

mysql_connect("sql.hostarea.org", "haha", "mouhaha" );
mysql_select_db("e-nigmes" );
 
if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
    $titre = addslashes($_POST['titre']);
    $contenu = addslashes($_POST['contenu']);
    // On vérifie si c'est une modification de news ou pas
    if ($_POST['id_news'] == 0)
    {
        // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
        mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . time() . "')" );
    }
    else
    {
        // On protège la variable "id_news" pour éviter une faille SQL
        $_POST['id_news'] = addslashes($_POST['id_news']);
        // C'est une modification, on met juste à jour le titre et le contenu
        mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'" );
    }
}
 
 
if (isset($_GET['supprimer_news']))
{
    // Alors on supprime la news correspondante
    // On protège la variable "id_news" pour éviter une faille SQL
    $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
    mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Date</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC') or die(mysql_error());
while ($donnees = mysql_fetch_array($retour));  
{
?>
<tr>
<td><?php echo '<a href="rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>
<?php
}
mysql_close();
?>
</table>


Message édité par Jeannotdu3 7 le 13-02-2008 à 21:10:48

---------------
Jeannotdu37, pour vous servir ;D
Profil : IDNaute
Plus d'informations

Quand tu clic sur le lien, qui t'envoie sur la page dont tu parlais plus haut, rien ne te dis que les variables suivent!

 

Une fonction pratique pour du debug:
print_r
Fais un print_r($donnees) et, meme si ca pête ta page, tu verra le contenu de ta variable.

  

Je repete donc :)

 
Code :
  1. // On récupère les 5 dernières news
  2. $sql = 'SELECT * FROM news ORDER BY id DESC LIMIT 0, 5';
  3. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  4. $data = mysql_fetch_array($req);
  5. {
  6. ?>
  7. <div class="news">
  8.     <h3>
  9.         <?php echo $donnees['titre']; ?>
  10.         <em>le <?php echo date('d/m/Y à H\hi', $donnees['timestamp']); ?></em>
  11.     </h3>
 

==> Ta requete , tu la parcours sur $data, pourquoi alors reprendre donnees ?????

 

<div class="news">
<?
whille($data=mysql_fetch_assoc($req)
{
     echo $data['titre'];
     echo "<em>le ";
     echo date('d/m/Y à H\hi', $data['timestamp']);
     echo "</em>";
 }
?>

 

Ps:

 

un array, c'est tout "simplement" , un tableau...
2 types majeurs d'array:

 

Nommé
$toto=array('AAA'=>"toto",'BBB'=>"tata" );
où tu peux accéder aux cases du tableau par leur indice (0,1 ..n) ou par leur nom
$toto['AAA']  est valide.

 

Non nommé
$toto=array("toto","tata" );
Uniquement par leur indice.

 

Pour être plus con, tu peux aussi définir un array en indiquant l'indice de départ :)

 


=> http://fr3.php.net/manual/fr/ref.array.php

 

Juste pour info, ça peut souvent être pratique quand tu utilise des arrays pour remplir des entetes de colonnes (pour générer des tableaux sur du pdf par exemple):
Tu peux récuperer , dans un autre array, la liste des clés d'accès d'un array ...... (ouf !)

 


$toto=array("a"=>"toto","b"=>"tutu" );
$tata=array_keys($toto);

 


===> $tata contient donc "a","b" :)

  


Message édité par elendilm le 13-02-2008 à 21:29:58
Baisse les yeux ... regardes moi quand je te parle
Profil : IDNaute
Plus d'informations

C'est plutôt while au lieu de whille ?


---------------
Jeannotdu37, pour vous servir ;D
Profil : IDNaute
Plus d'informations

d'après toi ?

 

(et penses aussi à fermer la parenthèse!)


Message édité par elendilm le 13-02-2008 à 21:35:18
Baisse les yeux ... regardes moi quand je te parle
Profil : IDNaute
Plus d'informations

^^ Ça fonctionne, mais je n'ai que la première news, et je souhaiterais afficher les 5 dernières news :)

 

PS : Ah, okay, j'ai pigé l'array :) Merci :)


Message édité par Jeannotdu3 7 le 13-02-2008 à 21:39:32

---------------
Jeannotdu37, pour vous servir ;D
Profil : IDNaute
Plus d'informations

Ca devrait marcher ton LIMIT ...

 


Ensuite pour la/les 1eres, la/les dernieres: ton order by (ASC ou DESC)


Message édité par elendilm le 13-02-2008 à 21:51:27
Baisse les yeux ... regardes moi quand je te parle
Profil : IDNaute
Plus d'informations

Ca affiche une autre news, mais qu'une seule :D

 

Pfiou ! J'savais pas qu'il y avait autant de codes de programmation ^^ Eh beh, si il faut que je les apprennent tous ...

 

J'avoue, le MySQL, ça me fait un peu peur ^^


Message édité par Jeannotdu3 7 le 13-02-2008 à 21:46:29

---------------
Jeannotdu37, pour vous servir ;D
Profil : IDNaute
Plus d'informations

fais un print_r($data)
 
Fais un echo($req) et lances la à la main dans phpMyAdmin .

Baisse les yeux ... regardes moi quand je te parle
Profil : IDNaute
Plus d'informations

echo ($req) donne : Resource id #3

 

print_r($data) donnc : Array ( [0] => Jean [titre] => Jean [1] => Jean est le plus beau [contenu] => Jean est le plus beau [2] => 1202913998 [timestamp] => 1202913998 )


Message édité par Jeannotdu3 7 le 13-02-2008 à 22:07:45

---------------
Jeannotdu37, pour vous servir ;D
Profil : IDNaute
Plus d'informations

Enlève ton LIMIT 0,5 ,remplace par LIMIT 5 .

 

=> LIMIT xxx,xxxx (offset/nombre) => dans ton cas, l'offset ne sert pas vraiment non ?

 

puis:
ta requete lancée dans phpMyAdmin ?


Message édité par elendilm le 14-02-2008 à 07:35:24
Baisse les yeux ... regardes moi quand je te parle
Profil : IDNaute
Plus d'informations

erf, j'ai du réinstaller windows, et j'ai pas remis WAMP ...
LIMIT 5, ça afficherait seulement 5 ?
Tandis que LIMIT 0, 5 ça affiche une ensemble de 0 à 5 ?


Message édité par Jeannotdu3 7 le 16-02-2008 à 11:07:40

---------------
Jeannotdu37, pour vous servir ;D

Aller à :
Ajouter une réponse
  FORUM Infos-du-Net » Programmation » Souci de MySQL
 

Liens