Créer une table

lil princess
Invité n'ayant pas de compte PHPfrance

23 févr. 2007, 11:33

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!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 févr. 2007, 11:41

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 1996 Messages

23 févr. 2007, 11:50

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' "
Modifié en dernier par Aureusms le 23 févr. 2007, 11:54, modifié 1 fois.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 févr. 2007, 11:52

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(); 
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 1996 Messages

23 févr. 2007, 11:55

La je m'incline ....
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 févr. 2007, 11:59

La je m'incline ....
La collaboration mène à l'excellence ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

lil princess
Invité n'ayant pas de compte PHPfrance

23 févr. 2007, 12:01

ok merci ja vais essayer...

lil princess
Invité n'ayant pas de compte PHPfrance

23 févr. 2007, 12:05

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'

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 févr. 2007, 12:11

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 ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

lil princess
Invité n'ayant pas de compte PHPfrance

23 févr. 2007, 12:12

lol
je m'en suis plus ou moins douté
mais en tant que débutante
je préfère faire confiance.....

lil princess
Invité n'ayant pas de compte PHPfrance

23 févr. 2007, 12:14

toujours la même erreur qui revient...

lil princess
Invité n'ayant pas de compte PHPfrance

23 févr. 2007, 12:37

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 févr. 2007, 12:40

Oula, je vais peut être retourner me coucher moi :sleeping:

Effectivement, sans les ' autour des noms de colonne, c'est mieux ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer