Encore un problème en php - Programmation
TomsGuide.com : 700 000 inscrits répondent à toutes vos questions high-tech et informatique.
Pour obtenir de l'aide, inscrivez-vous gratuitement !
 

Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Encore un problème en php
 
Profil : IDNaute
Plus d'informations

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 spon sorisés

Inscrivez-vous ou connectez-vous pour masquer ceci.

Profil : IDNaute
Plus d'informations

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

Profil : IDNaute
Plus d'informations

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

Profil : IDNaute
Plus d'informations

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.

Profil : IDNaute
Plus d'informations

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

:-?

Profil : IDNaute
Plus d'informations

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 :)

Profil : IDNaute
Plus d'informations

Impeccable, merci encore à toi :)

Profil : IDNaute
Plus d'informations

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 ^^

Profil : IDNaute
Plus d'informations

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.

Profil : IDNaute
Plus d'informations

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

Profil : IDNaute
Plus d'informations

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

Profil : IDNaute
Plus d'informations

Je vois image

Profil : IDNaute
Plus d'informations

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......

Profil : IDNaute
Plus d'informations

Tu parles de ça?

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


Aller à :
Ajouter une réponse
  FORUM Infos-du-Net » Programmation » Encore un problème en php
 

Liens