Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2898 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  conseil ecriture commande mysql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

conseil ecriture commande mysql

n°265848
Profil sup​primé
Posté le 09-12-2002 à 18:57:52  answer
 

$query="INSERT INTO forum (url, comment, language, Category) VALUES ('$url', '$comment', '$fet2['nom']', '$fet['nom']';)";
 
ca peu s'ecrire ce qu'il ya en gras?
paske cette requete ne veut pas s'enregisté alors ca peu ptet venir de la :/
 
avec les '' on sait jamais

mood
Publicité
Posté le 09-12-2002 à 18:57:52  profilanswer
 

n°265852
gizmo
Posté le 09-12-2002 à 18:59:20  profilanswer
 

non, ca ne peut pas s'écrire. Vire les apostrophes autour de nom

n°265862
Profil sup​primé
Posté le 09-12-2002 à 19:02:08  answer
 

:jap:  
 
m'enfin maintenant
 

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in add_forum.php on line 9

[:totoz]

n°265889
gizmo
Posté le 09-12-2002 à 19:19:09  profilanswer
 

tu as bien retiré les apostrophes à tous les arguments nom?

n°265893
Profil sup​primé
Posté le 09-12-2002 à 19:25:48  answer
 

vi j'ai tester
 
$query="INSERT INTO forum (url, comment, language, Category) VALUES (\"$url\", \"$comment\", \"$fet2[nom]\",\"$fet[nom]\" )";
 
et la ca marche pourtant il ne m'enregistre pas les valeur [nom] qui viennent de la::
 

<?include("menu_principal.php" ) ?>
 
 
 
 
 
 
<td bgcolor="#E8E8E8" style="width:350px;" align=right>
<form method=post action="add_forum.php">
<u><p align="left">url</u><p>
<input type=text name="url" value="adress of the forum">
 <u><p align="left">Commentary</u><p>
 <center><textarea rows=4 cols=50 name="comment">Commentary for this forum</textarea></center>
 
 
 
 
<u><p align=left>Category</u></p>
 
<?
//connection
require("connect.php" );
$connect=mysql_connect(SERVEUR, NOM, PASSE);
mysql_select_db(BASE, $connect);
//category
$req='select * from Category';
$que=mysql_query($req);
$prem_lettre=substr($nom,0, 3);
echo '<select name="cat[]" size="1" >';
while ($fet=mysql_fetch_array($que))
 {
  echo '<option value="'.$fet['value'].'">'.$fet['nom'].'</option>';
 }
echo '</select><p></p>';
 
//language
echo '<u><p align=left>Language</u></p>';
$req2='select * from language';
$que2=mysql_query($req2);
$prem_lettre2=substr($fet2['nom'],0, 3);
echo '<select name="lang[]" size="1" >';
while ($fet2=mysql_fetch_array($que2))
 {
  echo '<option value="'.$fet2['value'].'">'.$fet2['nom'].'</option>';
 }
echo '</select>';
 
 
?>
 
 
<u><p align="left">submit</u><p>
<input type=submit name="submit_search" value="add forum"><br>
<center><img src="panneau_Attention2.gif">If your language or your specific category isn't created yet, please go <b><u><a href="add_cat.php">here</a></u></b> to create it ... Moderator watch you !
</center></form>
 
<?include("bas.php" ) ?>


 
il faut aussi dire qu'il ne recupere pas non plus la variable $comment il sauve juste celle de l'url :'(
 
plesa help c'est cho la

n°265929
omega2
Posté le 09-12-2002 à 20:16:58  profilanswer
 

chacal_one333 a écrit :

vi j'ai tester
 
$query="INSERT INTO forum (url, comment, language, Category) VALUES (\"$url\", \"$comment\", \"$fet2[nom]\",\"$fet[nom]\" )";
 
et la ca marche pourtant il ne m'enregistre pas les valeur [nom] qui viennent de la::
 

$query="INSERT INTO forum (url, comment, language, Category) VALUES (\"".$url."\", \"".$comment."\", \"".$fet2["nom"]."\",\"".$fet["nom"]."\" )";
 
Alors, miracle ça amrche, ou merde, ca décone toujours autant?
 
EDIT : Au fait, un exho de $query aide pas mal à comprendre popurquoi ca amrche pas, par ce qu'avec un "array[nom]" comme valeur envoyé à la base, tu devais pas avoir grand chôse de renvoyé par la base de donnée.


Message édité par omega2 le 09-12-2002 à 20:19:18
n°265932
Profil sup​primé
Posté le 09-12-2002 à 20:19:35  answer
 

merde ca marche tjr pas
 
il ne recupere que ma variable url :'(

n°265937
Profil sup​primé
Posté le 09-12-2002 à 20:21:14  answer
 

au passage pourquoi il ne recupere pas mes variable fet2(nom] et fet[nom] qui sont dans ce forumulaire
 

$req='select * from Category';
$que=mysql_query($req);
$prem_lettre=substr($nom,0, 3);
echo '<select name="cat[]" size="1" >';
while ($fet=mysql_fetch_array($que))
 {
  echo '<option value="'.$fet['value'].'">'.$fet['nom'].'</option>';
 }
echo '</select><p></p>';
 
//language
echo '<u><p align=left>Language</u></p>';
$req2='select * from language';
$que2=mysql_query($req2);
$prem_lettre2=substr($fet2['nom'],0, 3);
echo '<select name="lang[]" size="1" >';
while ($fet2=mysql_fetch_array($que2))
 {
  echo '<option value="'.$fet2['value'].'">'.$fet2['nom'].'</option>';
 }
echo '</select>';

n°265953
omega2
Posté le 09-12-2002 à 20:38:56  profilanswer
 

chacal_one333 a écrit :

au passage pourquoi il ne recupere pas mes variable fet2(nom] et fet[nom] qui sont dans ce forumulaire
 

$req='select * from Category';
$que=mysql_query($req);
$prem_lettre=substr($nom,0, 3);
echo '<select name="cat[]" size="1" >';
while ($fet=mysql_fetch_array($que))
 {
  echo '<option value="'.$fet['value'].'">'.$fet['nom'].'</option>';
 }
echo '</select><p></p>';
 
//language
echo '<u><p align=left>Language</u></p>';
$req2='select * from language';
$que2=mysql_query($req2);
$prem_lettre2=substr($fet2['nom'],0, 3);
echo '<select name="lang[]" size="1" >';
while ($fet2=mysql_fetch_array($que2))
 {
  echo '<option value="'.$fet2['value'].'">'.$fet2['nom'].'</option>';
 }
echo '</select>';



Dans la boucle, elles sont initialisé si dans la liste des colone retourné par ta requête, il y en a une de même nom  (attention aux majuscules minuscules).
Après les boucles, je sais pas si elles ont encore une valeur.

n°266157
beleg
黑社會
Posté le 10-12-2002 à 00:21:01  profilanswer
 


$query="INSERT INTO forum  
(url, comment, language, Category)  
VALUES  
('$url', '$comment', '".$fet2["nom"]."', '".$fet["nom"]."')";


 
pkoi faire compliqué ?

mood
Publicité
Posté le 10-12-2002 à 00:21:01  profilanswer
 

n°266164
Mara's dad
Yes I can !
Posté le 10-12-2002 à 00:42:50  profilanswer
 

Comme le dit très bien beleg, POURQUOI faire compliqué !
 
D'autre part, c'est pas bien d'écrire : $fet[nom] !
 
Avec tableau associatif, les indexes sont des "CHAINES DE CARACTERES", or nom tout seul ce n'est pas une string !
 
Alors pourquoi çà marche ?
 
En fait quand on fait çà, PHP considère nom comme une constante qui n'a pas été définie. Dans ce cas, la constant prend son nom comme valeur. Mais c'est bien expliqué dans la doc :
 
1- Rien ne dis que dans une future version, les constantes non initialisés continueront à l'être de cette façon.
 
2- D'autre part, il est tout à fait possible qu'une constant qu'on utilise comme çà soit un jour initialisé à une autre valeur par PHP ou par un script.
 
Donc on écrit $fet['nom'] ou $fet["nom"], un point c'est tout.
 
Et pour la requête, on fait comme beleg le dit !
 
Ou bien, on lit la doc, et on découvre que si les variables sont bien remplacées par leur valeurs dans une chaîne délimitée par des guillemets doubles, il y a quand même des problèmes de temps en temps. Il y a donc une solution, qui est d'utiliser les {} !
 
Exemple :
 

$a = "DEF";
$aG ="def";
$b = "ABC$aGHI";


 
Ici, on ne peut pas dire d'il faut utiliser $a ou $aG dans la définition de $b et donc pour lever le problème ont écrit :
 

$a = "DEF";
$aG ="def";
$b = "ABC{$a}GHI";


 
Et çà marche aussi pour les tableaux !
 
Donc, on peut écrire :  
 
$query="INSERT INTO forum (url, comment, language, Category) VALUES ('$url', '$comment', '{$fet2['nom']}', '{$fet['nom']}')";


Message édité par Mara's dad le 10-12-2002 à 00:44:15

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°266168
beleg
黑社會
Posté le 10-12-2002 à 00:50:48  profilanswer
 

arf tu as edité, je comprenais pas les [ g] [ /g] jusqua je veuille repondre et que jexploite ainsi des bizarreries a joce qui font que dans message.php3 les balises sont interpretes meme a linterieur des [ fixe ] ...  :o  
 
Interessant, je vais te lire plus svt  :jap:


Message édité par beleg le 10-12-2002 à 00:51:01
n°266216
Profil sup​primé
Posté le 10-12-2002 à 08:39:52  answer
 

Apres ce cours tres chouette :) je peu quand meme dirte que mes variable ne passent pas a part comment et url :/
Je sais pas comment les reprendre :(

n°266218
Profil sup​primé
Posté le 10-12-2002 à 08:41:29  answer
 

en fait je ne sait pas comment recuperer le choix de l'utilisateur sur le forumulaire
 

$req='select * from Category';
$que=mysql_query($req);
$prem_lettre=substr($nom,0, 3);
echo '<select name="cat[]" size="1" >';
while ($fet=mysql_fetch_array($que))
 {
  echo '<option value="'.$fet['value'].'">'.$fet['nom'].'</option>';
 }
echo '</select><p></p>';


 
Il faut que je recupere la valeur et l'ajouter dans la table

n°266244
Profil sup​primé
Posté le 10-12-2002 à 09:33:45  answer
 

wai rien a faire j'arrive pas a recuperer juste ces deux valeurs

n°266266
beleg
黑社會
Posté le 10-12-2002 à 10:54:54  profilanswer
 

<select name="cat" size="1" >';
 
la valeur est dans $cat

n°266273
Profil sup​primé
Posté le 10-12-2002 à 11:05:20  answer
 

vi c'est ce que l'on, vient de me dire sur un autre forum.
malheuresement mintenant il m'affiche Array dans mon champs :heink:

n°266295
omega2
Posté le 10-12-2002 à 11:27:29  profilanswer
 

beleg a écrit :


$query="INSERT INTO forum  
(url, comment, language, Category)  
VALUES  
('$url', '$comment', '".$fet2["nom"]."', '".$fet["nom"]."')";


 
pkoi faire compliqué ?

Je te retourne la question dans l'autres sens, pourquoi ne pas coder n'importe comment?
Plusieurs raisons :
1) Quand tout est bien délimité, on comprend desuite (ou du moins beaucoup plus vite) ce que fait telle partie du programme.
 
2) Ca évite de nombreux bug. (c'est si vite fait d'oublier un \ devant un $ ou de coler du texte juste derrière le nom de la variable ou carément d'oublier mle $ devant le nom de la variable)
 
3) Quand tu débugues, tu comprend parfois beaucoup plus vite d'où vient certain bug (déjà que tu peux te prendre la tête pendant un bon moment sur un bug tout con alors je te laisse deviné ce que ca donne quand le code ressemble à ce qu'on obtient après le passage d'un obfuscateur)
 
4) Quand t'as un problème du à une mauvaise habitude, c'est dur de ce mettre désormé à bien coder. C'est beaucoup plus simple de ce mettre à coder proprement dès le début et de définir desuite quelques règles de codages des noms de variables et de fonction plustôt que de evoir tout modifier quelques mois plus tard par ce que t'as du mal à comprendre ce qui a été fait.
 
 
Bref, a la question pourquoi faire compliquer, c'est simple :
 
1) c'est pour que ca marche dans tout les cas.
 
2) pour faciliter grandement le débugage du code.
 
Par contre l'inconvénient quand on code proprement ,c'est que si on veut pas que n'importe qui tombant sur une partie du cocde comprenne trop vite ce qu'on a écrit, on est obligé d'utiliser un obfuscateur, tantdis que celui qui programme n'importe comment, il en a pas bnesoin vu qu'il fait de lui même le travail de l'obfuscateur. ;)

n°266310
beleg
黑社會
Posté le 10-12-2002 à 12:07:27  profilanswer
 

Moi je code propre pr coder plus vite, pr debugger facilement, pr reprendre vite quand je reviens sur le code par la suite, et pr moi, il est tres important que qqun qui vient sur le code comprenne aussi vite que celui qui a codé.
 
donc 1/ 2/ 3/ 4/ entierement daccord. 1) 2) pareil ...
 
mais je trouve pas que je fasse compliqué en separant html de php, string php avec des " " des string sql avec des ' ' et en separant les variables (ca javoue je le fais pas trop, sauf si il y a un tableaux), justement, je trouve ca simple dou mon Pkoi faire compliqué et melanger " et ', tt mettre ds uen seule string et au final, poster ttes les 15 minutes pr des syntax errors.

n°266322
Profil sup​primé
Posté le 10-12-2002 à 12:24:15  answer
 

bon pour mon pbm (:ange:) j'ai utilisé $_POST['cat'] et j'ai retirer le substr qi finalement ne me servait pas [:thesphinx]

n°266336
omega2
Posté le 10-12-2002 à 12:50:24  profilanswer
 

beleg a écrit :


mais je trouve pas que je fasse compliqué en separant html de php, string php avec des " " des string sql avec des ' ' et en separant les variables (ca javoue je le fais pas trop, sauf si il y a un tableaux), justement, je trouve ca simple dou mon Pkoi faire compliqué et melanger " et ', tt mettre ds uen seule string et au final, poster ttes les 15 minutes pr des syntax errors.  

Donc, t'as parfois des variables dans ta chaine de caractère et d'autre fois entre deux chaines. ;)
Moi, je trouves plus simple à relire du code où toutes les variables sont hors des chaines de caratères que le même code avec les variables perdus au milieu des chaines de caractères.
C'est une question d'habitudes en fait.
Bon, faut dire, aussi, je fais pas que du php alors j'essayes de garder le maximum d'habitudes entre les diférents langage que j'utilises et en dehors de php, il y en a pas beaucoup qui traitent les variables mises dans des chaines de caractères.
Par contre, pour le gain de vitesse, un ". suivit d'un ." ne fait vraiment pas perdre beaucoup de temps je trouves. Et moi, ca m'en fait perdre moins que ce que je gagnes en relecture/debeugage.
 
Mais bon, chacun son truc. ;)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  conseil ecriture commande mysql

 

Sujets relatifs
[ C ] les principales commande sur les fichiers...[PHP/MySQL] question sur la recuperation de champs
[mysql] ma requete est elle bonne?[MySQL] et PHP : avoir le resultat d 1 requete MySQL avec php. ?
[PHP] Pb mysql affichage de résultatMySQL ou DBM?
pb mysql / PHP avec la fonction DELETEPtit soucis sur traitement du resulat requete MySQL
replication MysqlConseil sur un tableau
Plus de sujets relatifs à : conseil ecriture commande mysql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR