cs_paul13
Messages postés8Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention22 juin 2006
-
20 juin 2006 à 20:06
cs_paul13
Messages postés8Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention22 juin 2006
-
22 juin 2006 à 12:05
Bon, comme je ne sais pas trop comment poser la question, voila le contexte.
Depuis une page en php me servant à requeter dans la base MySQL, je peux faire des inserts sur plusieurs lignes et plusieurs champs en une passe. Ok. C'est bien pratique.
'INSERT IGNORE INTO `admin` (`id`, `nom`, `titre`, `numero`, `administrateur`, `id_level`, `valeur`) VALUES ' ; ?><?php $text = stripslashes($textfield) ;?><?php echo trim($text, ",").";"; ?>
ensuite la liste des valeurs. 3, 5, 10, 100, lignes d'un coup ça roule
Tout ça c'est ok
Question : Je tente de réaliser la meme démarche depuis une page en php me servant à requeter (je me répète) et là, non plus en INSERT mais en UPDATE et ben ça veut pas. Je suis pas balaise ça fait que 7 heures que je bosse sur la commande et que je cherche un exemple , mais bon jusqu'à présent, rien de concluant.
ça copier dans mon formulaire ça passe pas erreur MySQL, ça donne
UPDATE `table_1` SET `nom` 'blabla', `titre` 1 , `numero` = 2 , `administrateur` = 'blablabla' , `id_level` = 1 , `valeur` = 2 WHERE `id` =34; UPDATE `table_1` SET `nom` = 'boubou', `titre` = 1 , `numero` = 3 , `administrateur` = 'blablabla' , `id_level` = 1 , `valeur` = 2 WHERE `id` =35;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 '; UPDATE `table_1` SET `nom` 'blabla', `titre` 1 , `nu
Mais la meme chose copier dans le SQL TEXTAREA de phpmyadmin passe comme une lettre à la poste 'quand elle est pas en grève' lol
Voili voilou
Je continue à chercher et je reviens dès que j'ai du news.
Si y'en à un ou une qui aurait déjà rencontrer ce contexte je suis preneur d'infos à++
capoueidiablo
Messages postés316Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention 1 février 20101 21 juin 2006 à 02:00
coucou747 à tout a fait raison :D, je me suis heurté aux même problème y'a pas longtemps mais sur des insertions dans la base ...
au final j'ai créé un tableau contenant toute mes requetes et j'ai lancé un foreach sur le tableau pour récup les requetes une a une et les executer les unes arpres les autres ... :D
J_G
Messages postés1406Date d'inscriptionmercredi 17 août 2005StatutMembreDernière intervention28 août 200710 21 juin 2006 à 10:34
<dd>
</dd>
<dt>
<var class="parameter">query</var>
</dt>
<dd>
Une requête SQL
La chaîne de requête ne doit pas se terminer par un point-virgule.
</dd>Voilà ce que je lis dans la doc de mysql_query... C'est hallucinant car j'ai toujours terminé mes requètes par un point virgule !?! Pensant bien faire. et j'ai jamais eu de problème.<dt>Etonnant !
</dt>
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_paul13
Messages postés8Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention22 juin 2006 21 juin 2006 à 15:20
Merci de chercher avec moi une solussastuce à ce malin souci.
Réponse à J_G, bien vu pour la virgule mais afin d'ecourter la liste des champs à mettre à jour j'en ai virer quelques uns et j'ai pas virer la derniere virgule avant where. Ceci fait et verifier ça n'a pas résolu le probleme.
Concernant le point virgule en fin de chaine de requete c'est vrai et enchainer deux requetes update dans le SQL TEXTAREA de phpmyadmin fonctionne. Evidemment après avoir testé dans le TEXTAREA de ma page ça bug.
D'accord aussi avec coucou747 et capoueidiablo une seule requete par mysql_query mais une requete peut 'entre guillemet' englober un ensemble ou sous ensemble d'action. Par exemple un INSERT peut permettre d'entrer en une passe 1, 10 100 10000 lignes, de plusieurs champs, dans MySQL, je le sais je le fais, par une methode pas très orthodoxe, peut etre au yeux des puristes mais ça fonctionne. Je fais plusieurs action dans un formulaire ensuite je génère mais lignes avec While et ensuite je met en forme et j'envoie la requete INSERT.
Bon et bien pourquoi ça semble moins facile avec UPDATE certainement que je m'y prend pas très bien alors je vais chercher. Mais j'insiste sur le fait que copier, coller dans le SQL TEXTAREA de phpmyadmin fonctionne mais pas dans le TEXTAREA de ma page qui lui peut fonctionner en collant un ensemble INSERT. > leschamps > lesvaleurs.
Bon à part ça j'ai trouver ceci
//select query
while ($row = mysql_fetch_array ($result, MYSQL_ASSOC)) {
$id = $row[id];
$pref = $row[pref];
//you'll need to write the code for the rest of the table, the important bit is below
print "<td> </tr></td>
//include submit button here
}
// Then above all this I would have my conditional for the submit
if (isset($_POST[submit])) {
foreach ($_POST as $key) {
$id=$key[id];
$pref=$key[pref];
$query = "UPDATE table set pref= $pref where id = $id";
}
}
Je vais tenter et voir. Si de votre coté vous avez une voie, je prends.
A++