SQL erreur bizare

Invité
Invité n'ayant pas de compte PHPfrance

29 mars 2007, 20:52

Salut,

J'ai upload ma table:

Code : Tout sélectionner

CREATE TABLE `banniere_table` ( `id` int(11) NOT NULL auto_increment, `date` varchar(255) collate latin1_general_ci NOT NULL, `img` varchar(255) collate latin1_general_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ; -- -- Dumping data for table `banniere_table` -- INSERT INTO `banniere_table` VALUES (1, '12-12-2000', 'banniere.gif'); INSERT INTO `banniere_table` VALUES (2, '13-12-2000', '0dbc5f96fb.gif'); INSERT INTO `banniere_table` VALUES (3, '16-12-2003', '1a69ce3258.gif'); INSERT INTO `banniere_table` VALUES (4, '18-12-2000', '3su8.gif');
tout va bien et quand j'ouvre le fichier php il me donne une erreur:

 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

si vous avez une idee, merci

Eléphant du PHP | 70 Messages

29 mars 2007, 23:29

Tu as 2 requêtes qui s'enchaînent, essaye de les faire l'une à la suite de l'autre, ça m'a débuggué un script une fois ;)
Comme dit un ami
"Il n’y a jamais de bugs dans les programmes que j’écris : juste des caractéristiques non documentées"

Invité
Invité n'ayant pas de compte PHPfrance

30 mars 2007, 22:31

Tu as 2 requêtes qui s'enchaînent, essaye de les faire l'une à la suite de l'autre, ça m'a débuggué un script une fois ;)
mon code est le suivant:
<?php
//inclure les parametres
include ("Config_File.php");
//dossier des images
$path = "Images";
//poster les vars
if(isset($_POST['img'])) $img = $_POST['img'];
else $img = '';
if(isset($_POST['url'])) $url = $_POST['url'];
else $url = '';
//date
$date = date("d/m/Y");
//connexion
$connection = mysql_connect("$dbhost", "$dblogin", "$dbpassword") or die ('Erreur : '.mysql_error() );
$db = mysql_select_db($dbname, $connection) or die ('Erreur : '.mysql_error() );
$select = 'SELECT * FROM'. $banniere_table;
$result = mysql_query($select) or die(mysql_error());
//$result = mysql_query($select,$connection) or die ($ErrorSelect);
$total = mysql_num_rows($result);
//on calcule le nombre total de lignes
if($total==0) 
{
//si un resultat nul on affiche une banniere par defo
echo '<div align="center"><img src="'.$path.'/banniere.gif" alt="" class="" border="0" width="470" height="90" align="middle"></div>';
}
else
{
//sinon on ressort un nombre aleatoire du nombre de lignes
srand (time());
$number=(rand()%$total);
$number++;
//on trouve la ligne ou le id hasard est le meme ke le number genere
$select2 = 'select * from' .$banniere_table. 'where id='.$number;
$banner = mysql_query($select2) or die(mysql_error());
//on les regroupe ds un tab
 while ($data = mysql_fetch_array($banner)) {
$img = $data['img'];
$url = $data['url'];
// on affiche notre banniere
echo '<div align="center"><a href="'.$url.'"><img src="'.$path.'/'.$img.' border="0" width="470" height="90"></div>';
 }
 }
 	mysql_close (); 
?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

31 mars 2007, 14:25

Affiche tes requêtes $select et $select2, tu pourras les tester directement dans MySQL ou phpMyAdmin, mais ceci dit, je pense que le problème te sauteras aux yeux :)

Disons qu'elles manquent un peu d'espace autour du noms des tables :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 558 Messages

31 mars 2007, 14:49

Salut,

J'ai upload ma table:

Code : Tout sélectionner

CREATE TABLE `banniere_table` ( `id` int(11) NOT NULL auto_increment, `date` varchar(255) collate latin1_general_ci NOT NULL, `img` varchar(255) collate latin1_general_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ; -- -- Dumping data for table `banniere_table` -- INSERT INTO `banniere_table` VALUES (1, '12-12-2000', 'banniere.gif'); INSERT INTO `banniere_table` VALUES (2, '13-12-2000', '0dbc5f96fb.gif'); INSERT INTO `banniere_table` VALUES (3, '16-12-2003', '1a69ce3258.gif'); INSERT INTO `banniere_table` VALUES (4, '18-12-2000', '3su8.gif');
tout va bien et quand j'ouvre le fichier php il me donne une erreur:

 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

si vous avez une idee, merci
quel est la version de ta bd car sur easyphp 1.8 elle passe tres bien

Invité
Invité n'ayant pas de compte PHPfrance

31 mars 2007, 15:17

Cette erreur est donnee dans la page php et pas dans la base de donner sql c'est dans le fichier.php

Invité
Invité n'ayant pas de compte PHPfrance

01 avr. 2007, 23:05

J'essaie d'uploder ma table et donne cette erreur:

#1064 - 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 'CREATE TABLE `banniere_table2` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`' at line 1

je suis heberge sous free et ma table est comme suite:

Code : Tout sélectionner

CREATE TABLE `banniere_table2` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT , `nbre` VARCHAR( 255 ) NOT NULL , `img` VARCHAR( 255 ) NOT NULL , PRIMARY KEY ( `id` ) ) TYPE = MYISAM

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 avr. 2007, 14:50

Enlève la taille de ta clé, un champ de type INT n'a pas à avoir de taille spécifiée :)

Code : Tout sélectionner

CREATE TABLE banniere_table2 ( id INT NOT NULL AUTO_INCREMENT, nbre VARCHAR(255) NOT NULL, img VARCHAR(255) NOT NULL, PRIMARY KEY (id) ) TYPE = MYISAM
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

03 avr. 2007, 15:14

ca marche bien, quand j'insere mes donnees en arabe dans la BD, ca donne que des ???? dans la BD, alors je les recupere avec ???? dans le site, sachant que l'ecriture normal au site n'a aucun probleme tant que j'utilise UTF comme encodage