Page 1 sur 1

Créer une table

Posté : 23 févr. 2007, 11:33
par lil princess
bonjour,
je voudrais créer une table avec un grand nombre d'entrée dont les noms sont du style "images/dossier/nom#.jpg où # est un entier variant entre 1 et n.

voilà mon code:
<?php

mysql_connect("localhost", "root");
mysql_select_db("test");


for($i=0; $i !=162 ; $i++) 
    {
$adresse_mini1='images/ecosse/miniecosse/se'.$i.'.jpg' ;
$adresse1='images/ecosse/se'.$i.'.jpg';
$description1='ecosse';
$commentaire1='Ecosse';
echo($adresse1);
mysql_query("INSERT INTO images('id') VALUES $i");
mysql_query("INSERT INTO images('adresse_mini') VALUES 'images/ecosse/miniecosse/se'.$i.'.jpg'");
mysql_query("INSERT INTO images('adresse_mini') VALUES 'images/ecosse/se'.$i.'.jpg'");
mysql_query("INSERT INTO images('description') VALUES 'ecosse'");
mysql_query("INSERT INTO images('commentaire') VALUES 'ecosse'");
}
	
mysql_close(); 
?>
et ça ne marche pas du tout, il ne se passe rien. j'ai beau retourner leprblème dans tout les sens je ne vois pas ce qui bug.
merci d'avance pour votre aide!

Posté : 23 févr. 2007, 11:41
par zeus
Modération :
lil princess, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

Posté : 23 févr. 2007, 11:50
par Aureusms
Bonjour,

Tu as deux fois 'adresse_mini' avec deux valeurs à insérer , c'est normal ?
VALUES doit être entre () si mes souvenirs sont bons.

Essaye aussi de simplifier ta requete. Tu peux en effet utiliser cette syntaxe
:
"INSERT INTO images('id', 'adresse_mini', 'adresse_mini2', 'description','commentaire' ) VALUES ($i,'images/ecosse/miniecosse/se'.$i.'.jpg', 'images/ecosse/se'.$i.'.jpg','ecosse', 'ecosse' "

Re: Créer une table

Posté : 23 févr. 2007, 11:52
par zeus
La syntaxe d'un INSERT est légèrement différente de ce que tu utilises.
A chaque fois que tu écrit INSERT, tu inserts une nouvelle ligne. Si tu veux créer une nouvelle ligne pour laquelle tu fixes, plusieurs valeurs, tu peux ecrire

Code : Tout sélectionner

INSERT INTO table1 (champ1, champ2, champ3) VALUES (valeur1, valeur2, valeur3)
plutôt que

Code : Tout sélectionner

INSERT INTO table1 (champ1) VALUES (valeur1); INSERT INTO table1 (champ2) VALUES (valeur2); INSERT INTO table1 (champ3) VALUES (valeur3);
De plus, quand tu commences une chaine de caractères par ", si tu veux insérer une variable dedans, il faut également utiliser " et non pas '
exemple :
mysql_query("INSERT INTO images('adresse_mini') VALUES 'images/ecosse/se'.$i.'.jpg'");
doit être
mysql_query("INSERT INTO images('adresse_mini') VALUES 'images/ecosse/se".$i.".jpg'");
Enfin, si tu génères une chaine avant la requête, penses à l'utiliser dans la requete.

Ensuite, pense à mettre des die() après l'exécution d'une requête pour récupérer les éventuels messages d'erreurs ;)

voici ton code corrigé :
mysql_connect("localhost", "root");
mysql_select_db("test");


for($i=0; $i !=162 ; $i++) 
{
	$adresse_mini 	= 'images/ecosse/miniecosse/se'.$i.'.jpg' ;
	$adresse 		= 'images/ecosse/se'.$i.'.jpg';
	$description 	= 'ecosse';
	$commentaire 	= 'Ecosse';

	$str_requete = "INSERT INTO images('id', 'adresse_mini', 'adresse', 'description', 'commentaire') 
					VALUES $i, '".$adresse_mini."', '".$adresse."', '".$description."', '".$commentaire."'";
	mysql_query($str_requete) or die('Erreur MySQL : '.mysql_error()."\n".$str_requete);
}
	
mysql_close(); 

Posté : 23 févr. 2007, 11:55
par Aureusms
La je m'incline ....

Posté : 23 févr. 2007, 11:59
par zeus
La je m'incline ....
La collaboration mène à l'excellence ;)

Posté : 23 févr. 2007, 12:01
par lil princess
ok merci ja vais essayer...

Posté : 23 févr. 2007, 12:05
par lil princess
merci zeus, mais il ya encore un problème...
voilà ce que j'ai quand j'execute:

Erreur MySQL : Erreur de syntaxe près de ''ID', 'adresse_mini', 'adresse', 'description', 'commentaire') ' à la ligne 1 INSERT INTO images('ID', 'adresse_mini', 'adresse', 'description', 'commentaire') VALUES '', 'images/ecosse/miniecosse/se0.jpg', 'images/ecosse/se0.jpg', 'ecosse', 'Ecosse'

Re: Créer une table

Posté : 23 févr. 2007, 12:11
par zeus
Effectivement, j'ai oublié les () autour des values :-k
mysql_connect("localhost", "root");
mysql_select_db("test");


for($i=0; $i !=162 ; $i++) 
{
	$adresse_mini 	= 'images/ecosse/miniecosse/se'.$i.'.jpg' ;
	$adresse 		= 'images/ecosse/se'.$i.'.jpg';
	$description 	= 'ecosse';
	$commentaire 	= 'Ecosse';

	$str_requete = "INSERT INTO images('id', 'adresse_mini', 'adresse', 'description', 'commentaire') 
					VALUES ($i, '".$adresse_mini."', '".$adresse."', '".$description."', '".$commentaire."')";
	mysql_query($str_requete) or die('Erreur MySQL : '.mysql_error()."\n".$str_requete);
}
	
mysql_close(); 
Mais tu aurais pu le deviner en lisant mon post ;)

Posté : 23 févr. 2007, 12:12
par lil princess
lol
je m'en suis plus ou moins douté
mais en tant que débutante
je préfère faire confiance.....

Posté : 23 févr. 2007, 12:14
par lil princess
toujours la même erreur qui revient...

Posté : 23 févr. 2007, 12:37
par lil princess
c'est reglé....
voilà la bon code:
<?php
mysql_connect("localhost", "root"); 
mysql_select_db("test"); 


for($i=1; $i !=162 ; $i++)  
{ 
    $adresse_mini     = 'images/ecosse/miniecosse/minise'.$i.'.jpg' ; 
    $adresse         = 'images\ecosse\se'.$i.'.jpg'; 
    $description     = 'ecosse'; 
    $commentaire     = 'Ecosse';
	
    $str_requete = "INSERT INTO images (ID, adresse_mini, adresse, description, commentaire) 
					VALUES ( ".$i.", '".$adresse_mini."', '".$adresse."', '".$description."', '".$commentaire."' )"; 	
					
    mysql_query($str_requete) or die('Erreur MySQL : '.mysql_error()."\n".$str_requete); 
}; 
     
mysql_close(); 
?>
merci!!

Posté : 23 févr. 2007, 12:40
par zeus
Oula, je vais peut être retourner me coucher moi :sleeping:

Effectivement, sans les ' autour des noms de colonne, c'est mieux ;)