Se connecter / S'enregistrer
Votre question

Erreur sur mon script de news?

Tags :
  • Script
  • Programmation
Dernière réponse : dans Programmation
16 Juin 2008 20:28:47

Bonjour à tous, mon module est composé de 4feuille php

on commence par visualisation.php afin de voir les news déjà publié
enssuite il y a formulaire.php qui me permet de créer une nouvelle news
et enfin ajout.php qui remplis la table sql par les donnée transmise

visualisation.php:

  1. <?php
  2. $db = mysql_connect("localhost","user","password");
  3. mysql_select_db("pw_news",$db);
  4.  
  5. $sql="SELECT * FROM 'news' ORDER BY 'id' DESC";
  6. $result=mysql_query($sql) OR die('ERREUR SQL!<br>'.mysql_error());
  7. while ($data = mysql_fetch_array($result))
  8. {?>
  9. <table border="1">
  10. <tr><td><?=$data['titre']?>,écrit par <?=$data['auteur']?> le <?=$data['date']?></td></tr>
  11. <tr><td><?=$data['texte']?></td></tr>
  12. </table>
  13. <br>
  14. <?php }?>


formulaire.php :

  1. <html>
  2. <body>
  3.  
  4. <FORM name="form" method="POST" action="ajout.php">
  5. <INPUT type="text" name="auteur" value="auteur"><br>
  6. <INPUT type="text" name="titre" value="titre de la news"><br>
  7. <TEXTAREA name="texte">texte de la news</TEXTAREA><br>
  8. <INPUT type="hidden" name="date" value="<?=date("Y:m:d")?>">
  9. <INPUT type="submit" value="ajouter la news">
  10. </FORM>
  11.  
  12. </body>
  13. </html>


ajout.php :

  1. <?php
  2. ob_start();
  3. if (!empty($_POST['titre']) && !empty($_POST['auteur']) && !empty($_POST['texte']) && !empty($_POST['date'])
  4. {
  5. $db=mysql_connect("localhost","elfaus","03est88a67");
  6. mysql_select_db("pw_news",$db);
  7. $sql="INSERT INTO 'news' (titre,auteur,date,texte)
  8. VALUES('".$_POST['titre']."',".$_POST['auteur'].'",
  9. "'.$_POST['date'].'","'.$_POST['texte'].'")";'
  10. $result=mysql_query($sql) OR die('Erreur SQL!<br>'.mysql_error());
  11.  
  12. header('Location: visualisation.php');
  13. }
  14. ob_end_flush-);
  15. ?>


Lorsque je vais sur "visualisation.php"

fefox me dit:

ERREUR SQL!
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''news' ORDER BY 'id' DESC' at line 1

Lorsque je vais sur "formulaire.php"

fefox ne me dit rien tant que les données ne sont pas posté
mais lorsque les données sont posté (redirection vers: ajout.php)
fefox me dit

Parse error: syntax error, unexpected '{' in C:\wamp\www\ogame\news\ajout.php on line 4

Où est le problème ?

Autres pages sur : erreur script news

16 Juin 2008 20:41:27

Citation :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''news' ORDER BY 'id' DESC' at line 1


Pourtant la syntaxe est correcte, essaie sans les '

Pour ton ajout.php, tu as oublié une parenthèse ) à la fin de ton if d'où l'erreur.
Sinon le ob_end_flush-); c'est normal ? Ce serait pas plutot ob_end_flush(); ?
16 Juin 2008 20:53:14

je fais des progrés merci :) 
mais maintenant j'ai une erreur ligne 9 :) 

Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\ogame\news\ajout.php on line 10

PS: c'est bien ob_end_flush(); :) 
les ( et les - sont si proche mdr
Contenus similaires
16 Juin 2008 20:55:06

Ligne 8: il te manque un '
16 Juin 2008 20:58:46

? où manque-t-il un ' ligne 8?
sur quelle page aussi mdr
16 Juin 2008 21:51:32

$sql="INSERT INTO 'news' (titre,auteur,date,texte)
VALUES('".$_POST['titre']."',".$_POST['auteur'].'",
"'.$_POST['date'].'","'.$_POST['texte'].'" )";'

y a des erreurs là dedans, faut revoir ça. (je regarderai tout à l'heure, la pb est finie :D )
16 Juin 2008 23:09:22

Ya qu'une page ou il aurait pu manquer un ', c'est ajout.php :D 
16 Juin 2008 23:28:42

J'ai fait le ménage :

  1. $titre = $_POST['titre'];
  2. $auteur = $_POST['auteur'];
  3. $date = $_POST['date'];
  4. $texte = $_POST['texte'];
  5.  
  6. $sql = "INSERT INTO news (titre,auteur,date,texte) VALUES ('$titre', '$auteur','$date','$texte')";


C'est plus clair comme ça.
17 Juin 2008 16:37:10

merci, j'ai fait les modif, mais encore un bug mdr

je reposte le code tel que je l'ai modifie grâce à ton aide

visualisation.php

  1. <?php
  2. $db = mysql_connect("localhost","elfaus","03est88a67");
  3. mysql_select_db("pw_news",$db);
  4.  
  5. $sql="SELECT * FROM 'news' ORDER BY 'id' DESC";
  6. $result=mysql_query($sql) OR die('ERREUR SQL!<br>'.mysql_error());
  7. while ($data = mysql_fetch_array($result))
  8. {?>
  9. <table border="1">
  10. <tr><td><?=$data['titre']?>,écrit par <?=$data['auteur']?> le <?=$data['date']?></td></tr>
  11. <tr><td><?=$data['texte']?></td></tr>
  12. </table>
  13. <br>
  14. <?php }?>


formulaire.php

  1. <html>
  2. <body>
  3.  
  4. <FORM name="form" method="POST" action="ajout.php">
  5. <INPUT type="text" name="auteur" value="auteur"><br>
  6. <INPUT type="text" name="titre" value="titre de la news"><br>
  7. <TEXTAREA name="texte">texte de la news</TEXTAREA><br>
  8. <INPUT type="hidden" name="date" value="<?=date("Y:m:d")?>
  9. <INPUT type="submit" value="ajouter la news">
  10. </FORM>
  11.  
  12. </body>
  13. </html>


ajout.php

  1. <?php
  2. ob_start();
  3. if (!empty($_POST['titre']) && !empty($_POST['auteur']) && !empty($_POST['texte']) && !empty($_POST['date']))
  4. {
  5. $db=mysql_connect("localhost","elfaus","03est88a67");
  6. mysql_select_db("pw_news",$db);
  7. // <ajout>
  8. $titre = $_POST['titre'];
  9. $auteur = $_POST['auteur'];
  10. $texte = $_POST['texte'];
  11. // </ajout>
  12. $sql = "INSERT INTO news (titre,auteur,date,texte)
  13. VALUES ('$titre', '$auteur',NOW(),'$texte')";
  14. $result=mysql_query($sql) OR die('Erreur SQL!<br>'.mysql_error());
  15. header('Location: visualisation.php');
  16. }
  17. ob_end_flush();
  18. ?>


erreur renvoyé par fefox :

ERREUR SQL!
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''news' ORDER BY 'id' DESC' at line 1

je sens que c'est la fin de notre suplice :sarcastic: 
PS: maintenant les tables se remplisse :) 

EDIT, je crois que j'ai trouvé, j'ai supprimé les ' ' de news dans visualisation.php

mais maintenant
1-le champ date ne se remplit pas... (REGLE!)
2-voici l'appercu lors de l'affichage: visualisation.php

17 Juin 2008 17:38:41

euuu, je comprend rien là, de quels champs parles tu?
17 Juin 2008 17:43:27

nom, c'était pour la table sql, mais je viens de regler
par contre, dans visualisation.php je devrais voir le contenu de la table dans les cellules
et comme tu as pu le voir, ce n'est pas le cas :( 

il me dit

ERREUR SQL!
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''news' ORDER BY 'id' DESC' at line 1

le code est:

visualisation.php

<?php $db = mysql_connect("localhost","elfaus","03est88a67" );
mysql_select_db("pw_news",$db);
$sql="SELECT * FROM 'news' ORDER BY 'id' DESC";
$result=mysql_query($sql) OR die('ERREUR SQL!<br>'.mysql_error());
while ($data = mysql_fetch_array($result))
{?>
<table border="1">
<tr><td><?=$data['titre']?>,écrit par <?=$data['auteur']?> le <?=$data['date']?></td></tr>
<tr><td><?=$data['texte']?></td></tr>
</table>
<br>
<?php }?>
17 Juin 2008 17:53:43

a ok, mais c'était pas le premier post que j'avais mis enlever les ' ??? mdr

quel bordel dans ton fichier, t'as trouvé ce code où ?
  1. <?php
  2. $db = mysql_connect("localhost","elfaus","03est88a67" ) OR die(mysql_error());
  3. mysql_select_db("pw_news",$db);
  4. $db=mysql_query("SELECT * FROM news ORDER BY id DESC");
  5. while ($data = mysql_fetch_objet($db))
  6. {
  7. echo "\n<table border=1><tr><td>$data->titre écrit par $data->auteur le $data->date</td></tr><tr><td>$data->texte</td></tr></table><br>\n";
  8. }
  9. ?>


Je l'ai refais un peu, ce sera mieux, regarde de près, j'ai utilisé objet au lieu d'array.
(le \n sert a faire un retour chariot dans le code de la page)
J'ai pas testé, mais ça devrait marcher ...
17 Juin 2008 18:04:21

de mes doigt lol, je débute en php :) 
et j'ai pas l'habitude de commenter, je suis désolé :( 
mes profs de math me font aussi la remarque mdr

j'avais presque trouve ça en attendant ta réponse et en me servant de phpFrance

  1. <?php
  2. $db = mysql_connect("localhost","elfaus","03est88a67" ) OR die(mysql_error());
  3. mysql_select_db("pw_news",$db);
  4. $db=mysql_query("SELECT * FROM news ORDER BY id DESC" );
  5. while ($data = mysql_fetch_objet($db))


lol, je vais finir par t'énerver mdr

Fatal error: Call to undefined function mysql_fetch_objet() in C:\wamp\www\ogame\news\visualisation2.php on line 5

ne faudrait-il pas faire plutot

  1. <?php
  2. // connection à la bdd
  3. $db = mysql_connect("localhost","elfaus","03est88a67" ) OR die (mysql_error());
  4. mysql_select_db("pw_news",$db);
  5. // selection de la table
  6. $db=mysql_query("SELECT * FROM news ORDER BY id DESC" );
  7. // affichage des resultat
  8. while ($data = mysql_fetch_object($db))
  9. {
  10. echo "\n<table border=1><tr><td>$data->titre écrit par $data->auteur le $data->date</td></tr><tr><td>$data->texte</td></tr></table><br>\n";
  11. }
  12. ?>


dans ton code? car avec cette version ça fonctionne... ai-je sauter une ligne mdr

PS: je me suis permit d'ajouter des commentaires
17 Juin 2008 18:15:30

le bordel c'est pas les commentaires, c'est d'ouvrir et de refermer sans cesse tes balises <?php ?>, il vaut mieux utiliser echo ""; dans ce cas.
Sinon ça marche ?
17 Juin 2008 18:20:46

oui, avec ce que j'ai posté au dessus...
j'ai ptt sauté une ligne en recopiant mais avec celle brut du topic il me met

Fatal error: Call to undefined function mysql_fetch_objet() in C:\wamp\www\ogame\news\visualisation2.php on line 5

:p 

merci à toi
17 Juin 2008 18:48:10

merde, j'ai oublié le c.
c'est mysql_fetch_object.
DSL
17 Juin 2008 19:08:25

mdr, c'est venu naturellement quand je t'ai lu lol
i love english
par contre, le systeme, marche nikel, je l'ai implanter dans mon module
en revanche, il est faché avec les caractères spéciaux style:

- é à " ' ; etc ....

y-a-t il un moyen de le regler?
17 Juin 2008 20:33:40

oui, il faut utiliser les "codes" xhtml :
é = é
è = è
à = à
...
17 Juin 2008 20:41:23

Moi je met:

<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">

17 Juin 2008 20:49:25

j'ai reussi à faire mon tableau

date | raison | decision | compte rendu |

la pratique se fait en 2 étape

etape 1 on remplis les informations raison,decision (date étant remplis automatiquement)

etape 2 on reflechit à un compte rendu que l'on peux editer dans un formulaire séparé

le but étant que le cmpt rendu s'ajoute à la table sql de depard (avec la forme: id|date|raison|decision|cmpt_rendu ) dans la ligne qu'il concerne

exemple

2008-06-18|attaquer la W.WGU|accepte|

je passe a l'etape 2, je remplis mon compte rendu, le compte rendu s'ajoute automatiquement à la ligne à laquelle il correspond

(je sais pas si j'ai été clair :( 
je peux faire des screen :)  )
17 Juin 2008 22:32:23

Attention avec la balise méta, si tu éditeur créé un fichier encodé en UTF-8 elle ne marchera pas.
Sinon j'ai pas trop compris ce que tu veux faire.
17 Juin 2008 22:35:07

j'ai reussi à faire mon tableau

date | raison | decision | compte rendu |

la pratique se fait en 2 étape

etape 1 on remplis les informations raison,decision (date étant remplis automatiquement)

etape 2 on reflechit à un compte rendu que l'on peux editer dans un formulaire séparé

le but étant que le cmpt rendu s'ajoute à la table sql de depard (avec la forme: id|date|raison|decision|cmpt_rendu ) dans la ligne qu'il concerne

exemple

2008-06-18|attaquer la W.WGU|accepte|

je passe a l'etape 2, je remplis mon compte rendu, le compte rendu s'ajoute automatiquement à la ligne à laquelle il correspond

(je sais pas si j'ai été clair :( 
je peux faire des screen :)  )
23 Juin 2008 18:32:38

Bonjour, je pensais avoir enfin reglé mon histoire et ne plus à avoir à vous embéter mais, j'ai une nouvelle question (la dernière j'éspère car je pense que votre patience a des limites :p  )

Alors, vous vous souvenez de mon module, je voulais savoir comment y ajouter un mode d'édition (afin de modifier l'une ou l'autre news :)  )
24 Juin 2008 14:22:47

Bonjour,

Pour cela, vous devez faire un code comme pour ajouter une news, mais avec UPDATE

  1. $sql = "UPDATE news SET titre='Bienvenue' , contenu='Bienvenue sur mon site...' " WHERE id='4' ";


Explication : Cette fonction modifie le champ d'id 4 sur la table news.
24 Juin 2008 17:20:32

oui, mais il faut faire une page par news non?
24 Juin 2008 17:21:00

oui, mais il faut faire une page par news non?
24 Juin 2008 17:22:26

Non, vous le faites en dynamique, un formulaire avec une donnée id en post.
24 Juin 2008 18:58:46

Je ne comprends pas...
WHERE id='4' correspond bien à une idée 4 en particulier non?
24 Juin 2008 19:31:02

WHERE est un critère de selection.

Par exemple :

WHERE titre = 'Ouverture du site'
24 Juin 2008 19:57:00

Comme tu semble débutant en php, je te conseil de commencer par le début : apprendre les requêtes existantes (les principales au moins).
Tu découvrira vite la puissance de cet outil et comment résoudre tes soucis sans trop de mal.

(ps : id != idée, mais id = identifiant)
25 Juin 2008 00:27:39

:) 
désolé, quand j'ai un projet je pense à le finir avant de le commencer :p 
pour l'id et id je connais :p  depuis le temps que je m'ammuse en sql...
je vais voir sur zero pour les variable :) 
25 Juin 2008 08:51:02

Moi personnellement, je vous conseille d'apprendre les bases sur le site du zéro et d'ensuite créer des mini-sites en réseau local pour vous entrainer.

Et après vous pourrez vous lancer dans des projets plus importants :) 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS