Tom's Guide > Forum > Programmation > Encore un problème en php
Mot :    Pseudo :           
 

Encore moi :p

Voilà maintenant j'ai un problème quand je veux modifier ou supprimer une news.
Quand j'en supprimes une, les autres aussi sautent... :/
Alors là il y a la liste si vous voulez tester : la liste
Et là la page de news

Voici le code :

Code :
  1. if (isset($_GET['supprimer_news']))
  2. {
  3.     mysql_query('DELETE FROM news WHERE id=' . $_GET['supprimer_news']);
  4. }
  5. ?>
  6. <table><tr>
  7. <th>Modifier</th>
  8. <th>Supprimer</th>
  9. <th>Titre</th>
  10. <th>Date</th>
  11. </tr>
  12. <?php
  13. $retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
  14. while ($donnees = mysql_fetch_array($retour))
  15. {
  16. ?>
  17. <tr>
  18. <td><?php echo '<a href="rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
  19. <td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
  20. <td><?php echo stripslashes($donnees['titre']); ?></td>
  21. <td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
  22. </tr>



Merci beaucoup ^^

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

En effet sa supprime tout à chaque fois...

Essaye avec cette requête :
mysql_query('DELETE FROM news WHERE id=' . $_GET['supprimer_news'].' LIMIT 1');

Ensuite vérifie aussi que ton id est en auto_increment, ou que tu lui affecte bien une valeur unique pour chaque news

Répondre à Bianki

Citation :


Ensuite vérifie aussi que ton id est en auto_increment, ou que tu lui affecte bien une valeur unique pour chaque news


J'crois bien que ça vient de là puisque j'ai essayé de le faire mais j'ai pas réussi

Tu peux me le dire avec phpmyadmin ou autrement ? Merci encore http://www.be-plop.com/smileys/smiley.gif

Répondre à Pshuuut

Lorsque que tu est dans la page de structure de ta table news, clic sur Modifier pour le champ ID.

Ensuite dans la colonne Extra tu met auto_increment et le problème sera reglé.

Enfin à chaque fois que tu insérera une bouvelle news, dans ta requête tu ne fournira aucune valeur pour le champ Id, MySQL se chargera de lui affecter la valeur qui va bien.

Répondre à Bianki

Euh j'ai un message d'erreur :

Erreur

requête SQL:

ALTER TABLE `news` CHANGE `id` `id` INT( 11 ) NOT NULL AUTO_INCREMENT

MySQL a répondu:Documentation
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

:-?

Répondre à Pshuuut

Ha oui désolé je n'avais pas pensé à ça : il faut que tu mette ton champ Id en clé primaire. Pour cela exécute simplement cette requête :

ALTER TABLE `news` ADD PRIMARY KEY ( `id` ) ;

Tu peux également la créée en utilisant l'interface graphique de PMA :
- Dans le tableau nommé Index en dessous de la structure de ta table
- Clic sur exécuter
- Nom de la clé : PRIMARY
- Type de clé : PRIMARY
- Champ : Id
- Taille : laisse vide

Et sa règle le problème tu pourras définir ton auto_increment tranquillement :)

Répondre à Bianki

Impeccable, merci encore à toi :)

Répondre à Pshuuut

Ho encore une petite chose, je veux mettre un peu le même principe mais pour la partie dowload, jusque là tout va bien mais j'aimerais à la place de la date (à coté du titre donc) mettre un lien de téléchargement... j'ai créé un nouveau champ lien dans la table, j'ai mis le <imput blablabla> dans le formulaire à la page Rediger un dowload (login : idnaute, mdp:test) , j'ai mis le <?php...> dans la page principale...
Mais comme vous le voyez à la place du lien, il y a un nombre...

code exacte de la page rédiger :

Code :
  1. <?php
  2. mysql_connect("localhost", "plop_plop", "171090" );
  3. mysql_select_db("plop_heu" );
  4. if (isset($_GET['modifier_dld']))
  5. {
  6.     $retour = mysql_query('SELECT * FROM dld WHERE id=' . $_GET['modifier_dld']);
  7.     $donnees = mysql_fetch_array($retour);
  8.  
  9.  
  10.     $titre = $donnees['titre'];
  11.     $contenu = $donnees['contenu'];
  12.     $id_dld = $donnees['id'];
  13.     $lien = $donnees['lien'];
  14. }
  15. else
  16. {
  17.     $titre = '';
  18.     $contenu = '';
  19.     $id_dld = 0;
  20.     $lien = '';
  21. }
  22. ?>
  23. <form action="liste_dld.php" method="post">
  24. <p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
  25. <p>Lien : <input type="text" size="30" name="lien" value="<?php echo $lien; ?>" /></p>
  26. <p>
  27.     Contenu :
  28.     <textarea name="contenu" cols="50" rows="10">
  29.     <?php echo $contenu; ?>
  30.     </textarea>
  31.     <input type="hidden" name="id_dld" value="<?php echo $id_dld; ?>" />
  32.     <input type="submit" value="Envoyer" />
  33. </p>
  34. etc...



Et le code de la page dld.php :

Code :
  1. <?php
  2. mysql_connect("localhost", "plop_plop", "171090" );
  3. mysql_select_db("plop_heu" );
  4. $retour = mysql_query('SELECT * FROM dld ORDER BY id DESC LIMIT 0, 5') or die(mysql_error());
  5. while ($donnees = mysql_fetch_array($retour))
  6. {
  7. ?>
  8.       <b> <?php echo $donnees['titre']; ?></b>
  9.         <em><?php echo $donnees['lien']; ?></em>
  10.  
  11.     <p>
  12.     <?php
  13.     $contenu = nl2br(stripslashes($donnees['contenu']));
  14.     echo $contenu;
  15.     ?>
  16.     </p>
  17. <?php
  18. }
  19. ?>




Merci encore une fois d'avance ^^

Répondre à Pshuuut

Le nombre qui s'affiche ressemble fort à un Timestamp donc vérifie bien le type de tes champs.

Edit : Peut être que tu t'es trompé dans ta requête qui insère les D/L... je n'y avais même pas penssé : vérifie bien l'ordre d'insertion des champs dans ta requête peut être en as-tu inversé deux.

Répondre à Bianki

Pour le champ lien j'ai mis en text :-?

Répondre à Pshuuut

Quand tu te connectes a phpMyAdmin que vois tu dans ton champs lien ?

Répondre à Kymic@IDN

lol nan mais on s'en fiche de sa !

je voudrais savoir la ou les données qu'il y a dedans. Par ce que tes numéros sortent bien de quelque part......

Répondre à Kymic@IDN

Tu parles de ça?

lol sinon euh désolée j'vois pas de quoi tu parles surtout sur phpmyadmin :-?

Répondre à Pshuuut
Tom's Guide > Forum > Programmation > Encore un problème en php
Aller à :

Il y a 3130 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens