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


PhiSyX
Réponse acceptée

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

Zozor
Réponse acceptée

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
Réponse acceptée

Pour faire le design de tes news utilise du CSS.

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

Nookum
Auteur

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');

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
Auteur

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

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

BD

Nookum
Auteur

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

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

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
Auteur

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

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

Nookum
Auteur

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

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

Nookum
Auteur

je sais pas du tous

La c'est coté client donc plus de php mais javascript
http://www.webanddesigners.com/15-jquery-slideshow-and-plugins/

Nookum
Auteur

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>

Essaye ça ligne 14

$sql="SELECT * FROM news WHERE id=$_GET"id"]";
Nookum
Auteur

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

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']";

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
Auteur

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

Nookum
Auteur

ah sa marche j'ai trouvé ^^

Nookum
Auteur

et comment je fais le disgn des news en faite

Nookum
Auteur

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

Nookum
Auteur

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