Probléme news

Par Nookum, il y a 14 ans


Salut je débute en PHP et sur mon site je veux faire un système de News et de commentaire donc j'ai commencé par les news
donc voila je croie que c'est mon wamp mais je suis pas sur,sa me mais sa comme erreur:

Parse error: parse error in C:\wamp\www\news\Index.php on line 12
code du Config.php

<?php
 define("DB_HOST","localhost");

 define("DB_LOGIN","root");

 define("DB_PASS","");

 define("DB_BDD","News"); 
 ?>

code du Index.php

<?php
    require "config.php";
    mysql_conect(DB_HOST,DB_LOGIN,DB_PASS);
    mysql_select_db(BD_BDD);

    $sql="SELECT * FROM News";
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error())
    While($data=mysql_fetch_assoc($req)) {
    echo "<h1>{$data"titre"]}</h1>";
    echo "<p>{$data"contenu"]}</p>";
  {
?>

voila si quelqu'un as une solution sa m'aiderais bien merci

27 réponses

MrGuillou, il y a 14 ans

line 12 remplace { par }
c'est une erreur de syntaxe

Nookum, il y a 14 ans

sa change rien :s rha lala

<?php
    require "config.php";
    mysql_conect(DB_HOST,DB_LOGIN,DB_PASS);
    mysql_select_db(BD_BDD);

    $sql="SELECT * FROM news";
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error())
    while($data=mysql_fetch_assoc($req)) 
    {
    echo "<h1>{$data"titre"]}</h1>";
    echo "<p>{$data"contenu"]}</p>";
    } 
?>

et le config

<?php
 define("DB_HOST","localhost");

 define("DB_LOGIN","root");

 define("DB_PASS","");

 define("DB_BDD","news"); 
 ?>

la BD

-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Lun 27 Juin 2011 à 22:53
-- Version du serveur: 5.1.36
-- Version de PHP: 5.3.0
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Base de données: `news`
--
-- --------------------------------------------------------
--
-- Structure de la table `news`
--
CREATE TABLE IF NOT EXISTS `news` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `titre` varchar(60) NOT NULL,
  `contenu` mediumtext NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Contenu de la table `news`
--
INSERT INTO `news` (`id`, `titre`, `contenu`, `date`) VALUES
(1, 'salut', 'sa ouvre', '2011-06-28 00:44:06'),
(2, 'bye ', 'sa ferme', '2011-06-28 00:44:06');
MrGuillou, il y a 14 ans

Ligne 7 tu a oublié un point-virgule.
Les erreurs de type "Parse error: parse error " sont des erreur de syntaxe dans le code php.

Je te conseil d'utiliser netbeans pour coder, car lui il t'indiquera les erreurs de syntaxe

Nookum, il y a 14 ans

ah ouii merci mais jais réparé sa et et la sa dit "Fatal error: Call to undefined function mysql_conect() in C:\wamp\www\news\Index.php on line 3" et je vais teste netbeans méme si je sais pas c'est quoi

dutbas, il y a 14 ans

Bonsoir,
Tu as oublier un N a mysql_connect();

BD

Nookum, il y a 14 ans

ah merci je croie que j'ai un très gros problème XD je fais pas bien attention . et la il a une erreur sur la ligne 4

l'erreur est
'

Notice: Use of undefined constant BD_BDD - assumed 'BD_BDD' in C:\wamp\www\news\Index.php on line 4
Erreur SQL !
SELECT * FROM news
No database selected

'

je vous remontre le index

<?php
    require "config.php";
    mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
    mysql_select_db(BD_BDD);

    $sql="SELECT * FROM news";
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    while($data=mysql_fetch_assoc($req));
    {
    echo "<h1>{$data"titre"]}</h1>";
    echo "<p>{$data"contenu"]}</p>";
    } 
?>

et merci beaucoup d'essayer de m'aidé je débute le PHP je pige rien du tout et j'enchaine Erreur sur erreur merci a vous

MrGuillou, il y a 14 ans

L'erreur te dit que la constant BD_BDD n'existe pas, regarde dans le config.php si tu l'a bien créé

dutbas, il y a 14 ans

Ta constantes est DB_BDD et pas BD_BDD !
Ce sont des erreurs d'inattention. Je pense que tu devrais relire ton code, surtout que le message d'erreur est compréhensible.

BD

Nookum, il y a 14 ans

oui merci j'avais remarqué j'ai pu beaucoup avancé j'ai tout recommencé ^^ et j'ai mieux comprit mes erreur

MrGuillou, il y a 14 ans

Si tu n'a pas d'autre question passe le sujet en résolut. Merci

Nookum, il y a 14 ans

jais 2 question
1-comment fair un SPOILER
2-comment fair un slider (slideshow) preferable en php si possible

Guilhem, il y a 14 ans

Dites moi si je me trompe mais pour moi:
Spoiler -> Javascript.
Slideshow -> Ajax

Nookum, il y a 14 ans

je sais pas du tous

Nookum, il y a 14 ans

salut j'ai un autre problème avec ma fonction edit j(ais suivi le tuto mais sa me donne une erreur

Notice: Undefined index: id in C:\wamp\www\Nookumland\news\admin\edit.php on line 14
Erreur SQL !
SELECT * FROM news WHERE id=
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 '' at line 1

mon edit.php

<?php
    require "../config.php";
    mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
    mysql_select_db(DB_BDD);
    if(!empty($_POST)){
       extract($_POST);
       $sql="UPDATE news SET titre='$titre', contenu='$contenu' WHERE id=$id";    
       $req=mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
       echo "News Modifiée";
       $_GET"id"]=$id;
    }

    $sql="SELECT * FROM news WHERE id={$_GET"id"]}";
    $req=mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    $data=mysql_fetch_assoc($req);
    print_r($data);
?>
<form method="post" action="creer.php"/>
<input name="id" type="hidden" value="<?php echo $data"id"]; ?>"/>
   Titre <input type="text" name="titre" value="<?php echo $data"titre"]; ?>">
   <br/>
   contenu :<br/>
   <textarea name="contenu" style="width:100%;height:150px"><?php echo $data"contenu"]; ?></textarea>
   <input type="submit" value="Publier"/>
</form>
gogo07, il y a 14 ans

Essaye ça ligne 14

$sql="SELECT * FROM news WHERE id=$_GET"id"]";
Nookum, il y a 14 ans

avec cette ligne sa me dit sa Parse error: parse error, expecting T\_STRING' orT_VARIABLE' or `T_NUM_STRING' in C:\wamp\www\Nookumland\news\admin\edit.php on line 14

gogo07, il y a 14 ans

Ok, je n'utilise quasiment jamais les double quotes, donc voici la portion de code avec des simple quotes :

$sql='SELECT * FROM news WHERE id= '.$_GET'id'];    
// Avec les doubles, je pense que c'est ça (pas sur) :
$sql="SELECT * FROM news WHERE id=$_GET'id']";
PhiSyX, il y a 14 ans

Toujours mettre entre accolades {} si on veut afficher une variable à crochet ] (tableau, array) dans les doubles quotes
$sql = "SELECT * FROM news WHERE id={$_GET'id']}";
Sinon erreur

Nookum, il y a 14 ans

ben c'ets ce que j'ai fais e croi :s

Nookum, il y a 14 ans

ah sa marche j'ai trouvé ^^

Nookum, il y a 14 ans

et comment je fais le disgn des news en faite

PhiSyX, il y a 14 ans

Oui, je voulais juste corriger ce que gogo a écrit.

Notice: Undefined index: id in C:\wamp\www\Nookumland\news\admin\edit.php on line 14
Erreur SQL !
SELECT * FROM news WHERE id=
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 '' at line 1

Ça veut dire que $_GET'id'] n'est pas défini.
Ça veut dire que si tu veux qu'il n'y ai plus l'erreur, tu dois accéder à une news particulière "/edit.php?id=:news_id"

Pour que cette erreur ne se présente plus sans "query string", il faut modifier le code et y ajouter des conditions "isset" ou autre ^^
Voilà ^^

Nookum, il y a 14 ans

c'est bon jais trouvé merci euh euh une autre question comment fair le disgn de ces news

Nookum, il y a 14 ans

salut désolé un nouveau problème :s et la c'ets pour mes commentaire sa enchaine les erreur

mon "Index.php"

<?php
     require "config.php";
     mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
     mysql_select_db(DB_BDD);

     $sql="SELECT titre,id FROM news";
     $req=mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     while($data=mysql_fetch_assoc($req)) {
     echo"<a href=\"voir.php?id={$data'id']}\">{$data"titre"]}</a><br/>";
     }
 ?>

mon voir.php

<?php
     require "/config.php";
     mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
     mysql_select_db(DB_BDD);

     $id=$_GET'id'];
     $sql="SELECT * FROM news WHERE id=$id";
     $req=mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     $data=mysql_fetch_assoc($req);
     echo "<h3>{$data"titre"]}</h3>";
     echo "<p>{$data"contenu"]}</p>";
     echo "<p align\"right\">".date("D, d M Y H:i:s",strtotime($data"date"]))."</p>";
     $sql="SELECT * FROM comment WHERE id=$id";
     $req=mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     while ($data2=mysql_fetch_assoc($req));    {
        echo "----------------<br/>"
        echo $data2"pseudo"];
        echo "<p>{$data2"pseudo"]}</p>";
        echo "----------------<br/>"
     } 
 ?>

<form action="addcom.php" method="post">
  Pseudo: <input type"text" name="pseudo"/>
  URL: <input type"text" name="url"/><br/>
  Mail: <input type"text" name="mail"/><br />
  <textarea name="contenu" style="width:500px;heigth:200px"></textarea><br />
  <input type="submit" value="Commenter"/>
  <input type="hidden" name="news_id" value="<?php echo $data"id"]; ?>"/>
</form>

mon abbcom.php

<?php
    require "config.php";
    mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
    mysql_select_db(DB_BDD);
    extract($_POST);
    $sql="INSERT INTO comment (pseudo,url,mail,contenu,news_id) VALUES ('$pseudo','$url','$mail','$contenu','$news_id')";
    $req = mysql_query($sql) or die ('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    header("Location: voir.php?id=$news_id'");
?>

quand je fais quand je clic sur mon submit sa me mais cette erreur la Erreur SQL !
INSERT INTO comment (pseudo,url,mail,contenu,news_id) VALUES ('Nookum','http://localhost/Nookumland/news/','loicdesire@hotmail.fr','j'adore trop ','5')
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 'adore trop ','5')' at line 1

et je comprend pas l'erreur dit que c'est mon <?php --'

Zozor, il y a 14 ans

Si je peux me permettre, tu ne va pas réécrire les lignes de connexion à la BDD sur chaque page j'espère ...

<?php
    function connexionBDD() {
        mysql_connect("localhost","root","");
        mysql_select_db("Table");
    }
?>

Et pour l'utiliser, il te suffit de :

<?php
    connexionBDD();
    // Et voila, tu es connecté.
?>
palmer08, il y a 14 ans

Pour faire le design de tes news utilise du CSS.