Probleme PHP

Résolu/Fermé
Matchalilo - 30 avril 2009 à 22:16
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 1 mai 2009 à 18:43
Bonjour,
Bonjour forumeurs, forumeuses,
je me tourne vers vous car j'ai un gros problème pour un de mes sites et je ne voit pas le problème... Mon site est codé en PHP avec BDD, pour le moment je n'ai que 3 pages sur lesquel je travail : index.php / news.php / admin.php.


Index.php

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("test");

$requete = mysql_query("SELECT * FROM test");

$nombreDenewsParPage = 4;

$retour = mysql_query('SELECT COUNT(*) AS nb_news FROM test');
$donnees = mysql_fetch_array($retour);$totalDesnews = $donnees['nb_news'];

$nombreDePages = ceil($totalDesnews / $nombreDenewsParPage);

echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="index.php?page=' . $i . '">' . $i . '</a> ';
}

?>

<?php

if (isset($_GET['page']))
{
$page = $_GET['page'];
(index.php?page=4)
}
else
{
$page = 1;
}

$premiernewsAafficher = ($page - 1) * $nombreDenewsParPage;

$reponse = mysql_query('SELECT * FROM video_index ORDER BY id DESC LIMIT ' . $premiernewsAafficher . ', ' . $nombreDenewsParPage);

mysql_close();

while ($donnees = mysql_fetch_array($reponse) )
{
?>

<h1>
<?php
{
echo '<a href="news.php?page=' . $donnees['id'] . '">' . $donnees['titre'] . '</a> ';
}

?></h1>

<strong><?php echo $donnees['titre']; ?> : </strong><?php echo $donnees['texte_resume']; ?><br />

<?php

}
?>




news.php

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("test");


messages :
$reponse = mysql_query("SELECT * FROM test LIMIT 0, 1");


mysql_close();

while ($donnees = mysql_fetch_array($reponse) )
{
?>


<p>
<?php echo $donnees['texte']; ?>
</p>


<?php
}
?>




Je sais que c'est beaucoup demander mais je viens de galérer toute la journée à trouver une solution, mon problème est que la page news.php (quelque soit l'id qu'il y est derrière) affiche la dernière ligne que j'ai rentré dans la BDD.

Je pense que le problème vient de la requête dans la partie news.php (souligné et gras) mais je ne voit pas quoi mettre d'autre.

Merci de votre aide !!!

Cordialement Dexter
A voir également:

11 réponses

Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
1 mai 2009 à 02:54
messages :
$reponse = mysql_query("SELECT * FROM test where id='$_GET[page]' LIMIT 1");

il faut que tu précises à ta bdd quel champ t'intéresse, et tu y fais référence avec l'id (par défaut^^). Donc, au clic sur la liste des news, tu ouvres la page news avec l'id qui convient via la variable $_GET['page'], que tu insères dans la requête destinée à récupérer les données^^
1
Voila je cherchais à faire ça, je te remercie Smoking Bird, en faite je cherchais exactement ça. Je test tout de suite et reviens vers vous.
0
Harricote Messages postés 417 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 30 janvier 2011 41
30 avril 2009 à 22:26
Salut, remplace ceci :
$reponse = mysql_query('SELECT * FROM video_index ORDER BY id DESC LIMIT ' . $premiernewsAafficher . ', ' . $nombreDenewsParPage);

Par :
$reponse = mysql_query("SELECT * FROM video_index ORDER BY id DESC LIMIT "'.$premiernewsAafficher.'", "'.$nombreDenewsParPage.'"");

Et ceci :
echo '<a href="news.php?page=' . $donnees['id'] . '">' . $donnees['titre'] . '</a> ';

Par :
echo '<a href="news.php?page='".$donnees['id']."'">'".$donnees['titre']."'</a> ';


Je ne suis pas sûr mais teste quand même !
0
Je viens de tester ça me met deux erreurs.

Et je viens de voir que je n'avais expliquer mon problème en faite, quand j'ouvre un liens depuis l'index pour m'amener vers news.php?news=XX ça m'affiche tout le temps les mêmes infos quelque soit le liens.

Merci quand même je pense que le problème vient d'ici dans la page news.php :

$reponse = mysql_query("SELECT * FROM test LIMIT 0, 1");

je ne voit pas comment faire que ça affiche la bonne news.

J'espère que j'ai était assez clair dans mes explications.

Merci beaucoup
0
Bonsoir

$reponse = mysql_query("SELECT * FROM test ORDER BY id ASC LIMIT 1");
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Comment exprimer ma "galérétitude" (j'ai gaché autant de temps pour une chose si simple) merci à vous, vous m'avez bien aidé !

Bye bye tout le monde
0
Une dernière question comment fait ton pour supprimé une ligne de ma BDD, voici mon code mais il ne fonctionne pas du tout, dans ma partie admin je voulais faire un <input> pour taper l'ID de la page et la supprimer mais sans succès.

admin.php

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("test");

mysql_query("DELETE FROM test WHERE id='$_GET['deleteid']' ");
mysql_close();

?>
<form action="admin-delete.php" method="post">

<p>
ID : <input type="text" name="deleteid" /><br /><br />

<input type="submit" value="Envoyer" />
<input type="reset" value="Reset" />
</p>

</form>
0
Harricote Messages postés 417 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 30 janvier 2011 41
1 mai 2009 à 08:59
Remplace par :

admin.php
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("test");

if(isset($_GET['deleteid']))
{
mysql_query("DELETE FROM test WHERE id='$_GET['deleteid']' ");
}
mysql_close();
?>

<form action="admin.php" method="post">
<p>
ID : <input type="text" name="deleteid" /><br /><br />
<input type="submit" value="Envoyer" />
<input type="reset" value="Reset" />
</p>
</form>
0
Je viens d'essayer Harricote mais ça ne marche.

Merci de ton aide.

C'est peut-être une erreur de ma part, est ce que je dois créer une ligne deleteid dans ma table ?
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
1 mai 2009 à 14:08
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("test");

mysql_query("DELETE FROM test WHERE id='$_POST[deleteid]' "); //les formulaires, notamment le tiens, sont en général en méthode 'post', on récupère donc les valeurs avec la variable post^^
//de plus, si tu veux inscrire une variable tableau dans une ligne entre "", il ne faut pas mettre les ' entre les [] (super clair :D), ton $_GET['deleteid'] dans ta requête était donc complètement faux ;)
mysql_close();

?>
<form action="admin-delete.php" method="post">

<p>
ID : <input type="text" name="deleteid" /><br /><br />

<input type="submit" value="Envoyer" />
<input type="reset" value="Reset" />
</p>

</form>
si ton fichier avec le formulaire s'appelle 'admin.php' et qu'il contient aussi le traitement, l'attribut action du form ne doit pas spécifier admin-delete.php mais tout simplement admin.php, ou rien du tout, ce qui est une façon de le faire s'auto référer^^

dis moi si ça fonctionne^^
0
Comment exprimer ma joie fasse a un tel génie que tu es Smoking ^^c'est magnifique ça marche et en plus je sus trop un boulet car j'ai essayé plein de chose mais j'ai même pas pensé à enlever ces p****** de ' lol

Je vous remercie pour votre aide encore et encore !!!

Bye tout le monde
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
1 mai 2009 à 18:43
ptdr en ce qui me concerne j'ai déjà fait la même erreur :D et comme tu le constateras: on s'en souvient! pas besoin de la faire deux fois pour ça ;)
De plus, c'est pas évident, les tutos et les bouquins nous mettent pas forcément en garde contre elle^^

++
0