Probleme de remplissage de bdd [Fermé]

Signaler
Messages postés
322
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
29 décembre 2008
-
Enax
Messages postés
203
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
16 mars 2010
-
Bonjour,

je dois remplir ma bdd en faisant un update et la query sera ci dessous, le probléme que j'ai c'est que je rentre les noms a rentrer séparés par un tiret ex a-b-c-d-e-f et j'ai besoin que le dernier champs à remplir reprenne tous les autres et que ce soit donc a-b-cd-e-f

$query = "UPDATE base_physique SET auteur = '".$arr_valeurs[0]."' , motstitre = '".$arr_valeurs[1]."' , année = '".$arr_valeurs[2]."' , journal = '".$arr_valeurs[3]."' , volume = '".$arr_valeurs[4]."' , page = '".$arr_valeurs[5]."' , motscle = '".$arr_valeurs[6]."'"
. " WHERE sujet = '".$_SESSION['sujet']."'";

j'avais pensé rajouter references ='".$arr_valeurs[0].-.$arr_valeurrs[1]. .... mais j'ai une erreur donc je ne sais pas si c'est moi qui fait une erreur de syntaxe où si c'est impossible de faire ca

Merci de m'aider

8 réponses

Messages postés
203
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
16 mars 2010
145
Mettre des double quotes de chaque côté des tirets...
ladj59
Messages postés
322
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
29 décembre 2008
3
j'ai ssayé mais ca me mets ca :


$query = "UPDATE base_physique SET auteur = '".$arr_valeurs[0]."' , motstitre = '".$arr_valeurs[1]."' , année = '".$arr_valeurs[2]."' , journal = '".$arr_valeurs[3]."' , volume = '".$arr_valeurs[4]."' , page = '".$arr_valeurs[5]."' , motscle = '".$arr_valeurs[6]."' , references = '".$arr_valeurs[0].'-'.$arr_valeurs[1]."' '"
. " WHERE sujet = '".$_SESSION['sujet']."' AND auteur = ''";





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 'references = 'e-e' ' WHERE sujet = 'les ions' AND auteur = ''' at line 1
Messages postés
203
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
16 mars 2010
145
$query = "[...] SET [...] references = '".$arr_valeurs[0].'-'.$arr_valeurs[1]."' '". " WHERE [...]";

Et là dedans, il n'y a rien qui te choque ? Réfléchis un peu !

En plus, tu as lu mon premier message de travers.
ladj59
Messages postés
322
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
29 décembre 2008
3
references = '".$arr_valeurs[0]."'"-"'".$arr_valeurs[1]."'"

j'ai un peu de mal avec la concaténation et je t'avoue que je ne vois pas trop l'erreur de syntaxe
Messages postés
203
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
16 mars 2010
145
Là c'est pas qu'un peu. Mais étant donné que ta requête est entre guillemets, je ne vois pas pourquoi tu utilises la concaténation.
https://pbnaigeon.developpez.com/tutoriel/PHP/apostrophe-guillemet/

PS : Et utilise donc les balises < code>< /code> (sans les espaces) ! C'est pénible de lire ton code sans, surtout pour différencier les quotes et double quotes.
ladj59
Messages postés
322
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
29 décembre 2008
3
ben je mettrai ca alors d'après le tuto

references = '.$arr_valeurs[0].' "-" '.$arr_valeurs[1].' " le dernier " étant prour fermé celui mis avant upadate

toujours une erreur^^
Messages postés
203
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
16 mars 2010
145
Tu me désespères... lol

" [...] references = '$arr_valeurs[0]-$arr_valeurs[1]' [...] "
ou
' [...] references = "'.$arr_valeurs[0].'-'.$arr_valeurs[1].'" [...] '
Messages postés
322
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
29 décembre 2008
3
ok mais quand j'apllique la chose et bien j'ai l'erreur suivanrte qui apparait

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 'references = 'd-d' WHERE sujet = 'le silice'' at line 1
Messages postés
203
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
16 mars 2010
145
" [...] references = '$arr_valeurs[0]-$arr_valeurs[1]' [...] "
Messages postés
322
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
29 décembre 2008
3
je ne comprends pas du tout ce que tu as fais

peux tu m'expliquer?
Messages postés
203
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
16 mars 2010
145
Une requête SQL est en fait une chaîne qui peut avoir les formes suivantes :
"UPDATE table SET champ='valeur' WHERE champ='valeur'"
ou
'UPDATE table SET champ="valeur" WHERE champ="valeur"'

Si l'une de tes valeurs est une variable, tu fais :
"UPDATE table SET champ='$variable' WHERE champ='valeur'"
ou
'UPDATE table SET champ="'.$variable.'" WHERE champ="valeur"'


Dans le premier cas, la chaîne entre guillemets interprète les variable et les remplace par leur valeur.
Dans le deuxième cas, la chaîne entre apostrophes n'interprète pas les variables. Il faut donc utiliser la concaténation pour envoyer la valeur.