Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/08/2006, 11h29   #1
oim
Membre à l'essai
 
Inscription : décembre 2003
Messages : 118
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 118
Points : 20
Points : 20
Par défaut [SQL] Ajout dans un même champ

Bonjour,
Est-il possible dans une table d'avoir un champ dans lequel on peut enregistrer des données ?
J'ai une table avec 4 champs : id, user, text1, text2 ; le 1er membre va enregistrer son texte dans text1 et son pseudo dans user, le deuxième lui va enregistrer son texte dans text2 mais je n'arrive pas à rajouter son pseudo dans user à côté du premier membre.
Est-ce possible, avez-vous des exemples, ou une piste ?
Merci !
oim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 13h32   #2
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 797
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 797
Points : 1 688
Points : 1 688
Salut,
tu peux concaténer des string en SQL avec '+'
UPDATE table SET user = user + $user2 WHERE id=$id

La logique de ton système est bizzare, si tu te sers d'une ou plusieurs tables, en théorie tu n'as pas besoin de stocker plusieurs informations dans un même champ.
A+
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 15h58   #3
oim
Membre à l'essai
 
Inscription : décembre 2003
Messages : 118
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 118
Points : 20
Points : 20
Slt, merci pour la piste mais je n'y arrive toujours pas, ce que j'ai essayé :
pseudo=pseudo||'$pseudo',
pseudo=pseudo+'$pseudo',
A chaque fois ca m'inscrit dans le champ '0'.
oim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 16h04   #4
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Salut,

Si tu utilises MySQL, l'opérateur || ne réalise pas de concaténation par défaut. Il faut utiliser la fonction CONCAT(ch1, ch2, ...).
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 16h12   #5
oim
Membre à l'essai
 
Inscription : décembre 2003
Messages : 118
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 118
Points : 20
Points : 20
Slt, merci pour vos réponses, j'ai enfin trouvé :
SET pseudo=CONCAT(pseudo,',$pseudo'),
--
Je met le post en résolu !
oim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 19h02   #6
oim
Membre à l'essai
 
Inscription : décembre 2003
Messages : 118
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 118
Points : 20
Points : 20
Slt, j'ai enlevé le résolu, parce que j'aurai une autre question ; tout d'abord voici le code :
Citation:
function test() {
echo "test : <select name='id_cat' size='1'>\n";
$select=mysql_query("select id_cat, categorie from g_categories order by id_cat");
while(list($id_cat,$categorie)=mysql_fetch_array($select)) {
echo "<option value='".$id_cat."'>".$categorie."</option>\n";
echo"$categorie";
}
echo "</select>\n";
echo "<input type=\"hidden\" name=\"auteur\" value=\"$categorie\">";
}
Cette fonction enregistre dans la table l'id, $id_cat récuperé par le déroulant et la catégorie, c'est cette derniere qui ne s'enregistre pas, je n'arrive pas à amener la catégorie choisie par le déroulant dans l'input de la catégorie.
J'ai du mal à trouver dans google parce que je ne sais pas trop comment formulé ma demande.
Si vous aviez une idée ou un lien merci !
oim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 19h52   #7
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
A mon avis tu dois avoir la dernière catégorie dans ton input.

Ce qu'il faudrait faire, c'est effectuer un probable test dans le while afin de savoir si l'id choisi est le même, tu le stockes dans une variable intermédiaire.

Et il te reste plus qu'à mettre dans ton input


PS: il faudrait déjà savoir comment tu récupères la catégorie choisie
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 20h04   #8
oim
Membre à l'essai
 
Inscription : décembre 2003
Messages : 118
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 118
Points : 20
Points : 20
Slt, effectivement ca me marque la dernière catégorie suivant ou je le place, et l'id_cat est différente ; le code pour voir le fonctionnement je l'ai fait comme ca :
Citation:
function test() {
echo "<select name='id_cat' size='1'>\n";
$select=mysql_query("select id_cat, categorie from g_categories order by id_cat");
while(list($id_cat,$categorie)=mysql_fetch_array($select)) {
echo "<option value='".$id_cat."'>".$categorie."</option>\n";
echo"$categorie";
}
echo "</select>\n";
echo "<input type=\"hidden\" name=\"auteur\" value=\"$categorie\">";
}

switch($subop) {
case "ajout":
//$update = "INSERT INTO g_annonces VALUES ('', '".$id_cat."', '".$auteur."', '".$text."', '0')";
echo "'', '".$id_cat."', '".$auteur."', '".$text."', '0')";
mysql_query($update) or die(mysql_error());
if ($update) redirect_url ("".$ThisRedo."");
break;
}
Avec une variable intermédiaire j'ai fait comme ceci, c'est la 1ere fois donc je ne sais pas si c'est comme ca :
Citation:
echo "<select CLASS=\"TEXTBOX_STANDARD\" name='id_cat' size='1'>\n";
$select=mysql_query("select * from g_categories order by id_cat");
while($e=mysql_fetch_array($select)) {
echo "<option value='".$e[id_cat]."'>".stripslashes($e[categorie])."</option>\n";
if ($sel=="$id_cat") {
$sel="".stripslashes($e[categorie])."";
echo $sel;
}
}
echo "</select>\n";
echo "<input type=\"hidden\" name=\"auteur\" value=\"$sel\">";
}
oim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 20h17   #9
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
id_cat c'est un entier ? SI oui comme ceci :
Code :
1
2
3
       if ($sel == $id_cat) {
echo $sel = $categorie;
}
Et si $sel est issu du POST :
Code :
1
2
3
       if ($_POST['sel'] == $id_cat) {
echo $sel = $categorie;
}
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 20h40   #10
oim
Membre à l'essai
 
Inscription : décembre 2003
Messages : 118
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 118
Points : 20
Points : 20
slt, id_cat est un entier et $sel n'est pas issu du POST.
Ca ne fonctionne pas ; desole de t'embeter avec ca mais je suis sec !
oim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 20h46   #11
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Ok donc teste comme ceci (mon code était pour la premiere version avec list)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
                               echo "<select CLASS=\"TEXTBOX_STANDARD\" name='id_cat' size='1'>\n";
   $select=mysql_query("select * from g_categories order by id_cat");
   while($e=mysql_fetch_array($select)) {
      echo "<option value='".$e['id_cat']."'>".$e['categorie']."</option>\n";
      if ($sel == $e['id_cat']) {
         $sel=$e['categorie'];
        echo $sel;
      }
   }
   echo "</select>\n";
   echo "<input type=\"hidden\" name=\"auteur\" value=\"$sel\">";
}
Sinon es-tu sur que ton $sel de départ est défini (avant le test) .?
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 20h56   #12
oim
Membre à l'essai
 
Inscription : décembre 2003
Messages : 118
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 118
Points : 20
Points : 20
Slt, non ca ne marche pas, pour le $sel j'ai fait :
Citation:
$quer="select categorie from g_categories where id_cat='$id_cat'";
$sel=mysql_query($quer);
$sel=mysql_fetch_array($sel);
$categorie=$sel[categorie];
Pour récupérer la catégorie suivant l'id_cat.
oim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 20h59   #13
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Dans ce cas c'est normal car tu compares un tableau (array) et un entier...Il faudrait directement mettre $categorie dans le test.

Humm $id_cat sort d'où ??
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 21h10   #14
oim
Membre à l'essai
 
Inscription : décembre 2003
Messages : 118
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 118
Points : 20
Points : 20
Slt, il sort d'ou, je ne sais plus, ma feuille est remplie de code en activité et inactif, voila ce que j'ai fait :
Citation:
echo "<select CLASS=\"TEXTBOX_STANDARD\" name='id_cat' size='1'>\n";
$select=mysql_query("select * from g_categories order by id_cat");
while($e=mysql_fetch_array($select)) {
echo "<option value='".$e['id_cat']."'>".$e['categorie']."</option>\n";
//recup de la catégorie
$sel="'".$e['id_cat']."'";
$categorie=$sel[categorie];
if ($sel == $e['id_cat']) {
$sel=$e['categorie'];
echo $sel;
}
}
echo "</select>\n";
echo "<input type=\"hidden\" name=\"auteur\" value=\"$sel\">";
}
Avec ca, il mécrit pour l'input du name l'$id_cat du dernier sans prendre en compte la selection, c tjrs le dernier. Pourtant j'ai l'impression qu'on est pas mal : avec le sel on prend l'id_cat ($sel="'".$e['id_cat']."'" puis la categorie ($categorie=$sel[categorie]
oim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 21h18   #15
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
On va refomater tout ca pour bien y voir
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
echo '<select class="TEXTBOX_STANDARD" name="id_cat" size="1">'."\n";
$select = mysql_query('select * from g_categories order by id_cat') or die('erreur : '.mysql_error());
while( $res = mysql_fetch_array($select) ) 
{
    echo '<option value="'.$res['id_cat'].'">'.$res['categorie'].'</option>'."\n";
   //recup de la catégorie
   $categorie = $sel['categorie'];
   if ($categorie == $res['id_cat']) 
   {
      $sel = $res['categorie'];
      echo $sel;
   }
}
   echo '</select>'."\n";
   echo '<input type="hidden" name="auteur" value="'.$sel'">';
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 21h33   #16
oim
Membre à l'essai
 
Inscription : décembre 2003
Messages : 118
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 118
Points : 20
Points : 20
Slt, vraiment navré mais non
oim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 21h38   #17
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Tu n'as pas mis le code que je t'ai donné ?? Sinon il y aurait une parse error.

Bon vérifies toutes tes variables et commence surtout par savoir d'où sortent certaines. On pourra pas avancer si toi meme tu sais pas d'ou elles viennent

Mets des echo un peu partout pour voir si tes variables sont pas vides
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 22h02   #18
oim
Membre à l'essai
 
Inscription : décembre 2003
Messages : 118
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 118
Points : 20
Points : 20
Slt, j'ai mis ton code, ca me marque Query vide pour le champ catégorie.

Citation:
echo '<option value="'.$res['id_cat'].'">'.$res['categorie'].'</option>'."\n";
on choisie la catégorie
$categorie = $res['categorie'];
On transforme la caté choisie par une variable
if ($categorie == $res['id_cat'])
On vérifie que l'id_cat choisie correspond bien à la catégorieS'il y a bien une catégorie
{
$sel = $res['categorie'];
Variable pour l'appeler
}
oim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 22h04   #19
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Mais où ? Pour quel catégorie ? Il y a tellement de catégorie
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 22h09   #20
oim
Membre à l'essai
 
Inscription : décembre 2003
Messages : 118
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 118
Points : 20
Points : 20
Slt, et bien la catégorie choisie dans le menu déroulant :
Citation:
echo '<option value="'.$res['id_cat'].'">'.$res['categorie'].'</option>'."\n";
oim est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h07.


 
 
 
 
Partenaires

Hébergement Web