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 13/11/2006, 18h00   #1
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 148
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 148
Points : 26
Points : 26
Par défaut [SQL] Comment prédéfinir la valeur d'un select multiple

En fait j'ai un petit souci avec la fonction in_array()

voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
 
<select name="Q37" size="10" multiple id="Q37">
          <option value="1"<?php
if(in_array('1', $dbarray["Q37"])) echo "selected"; ?>>Gestion - Fiscalit&eacute;</option>
          <option value="2"<?php
if(in_array('2', $dbarray["Q37"])) echo "selected"; ?>>Comptabilit&eacute;</option>
          <option value="3"<?php
if(in_array('3', $dbarray["Q37"])) echo "selected"; ?>>Marketing</option>
          <option value="4"<?php
if(in_array('4', $dbarray["Q37"])) echo "selected"; ?>>Commercial</option>
          <option value="5"<?php
if(in_array('5', $dbarray["Q37"])) echo "selected"; ?>>Commerce &eacute;lectronique</option>
          <option value="6"<?php
if(in_array('6', $dbarray["Q37"])) echo "selected"; ?>>Commerce international</option>
          <option value="7"<?php
if(in_array('7', $dbarray["Q37"])) echo "selected"; ?>>Droit du travail</option>
          <option value="8"<?php
if(in_array('8', $dbarray["Q37"])) echo "selected"; ?>>Gestion du personnel</option>
          <option value="9"<?php
if(in_array('9', $dbarray["Q37"])) echo "selected"; ?>>Strat&eacute;gie</option>
          <option value="10"<?php
if(in_array('10', $dbarray["Q37"])) echo "selected"; ?>>Protection - S&eacute;curit&eacute; - Normalisation</option>
          <option value="11"<?php
if(in_array('11', $dbarray["Q37"])) echo "selected"; ?>>Autres</option>
          <option value="0" <?php
if(in_array('0', $dbarray["Q37"])) echo "selected"; ?>>Aucun</option>
        </select>
et voici l'erreur que j'obtient :
Code :
1
2
3
 
 
warning : in_array() : wrong datatype in argument 2
$dbarray contient le resulat d'une requete :

Code :
1
2
3
4
5
 
 
$q = "select Q31,Q32,Q33,Q34,Q351,Q352,Q361,Q362,Q37,Q38,Q39,Q310,Q311,Q312,Q313,Q314,Q315,Q316,Q317,visited from e_services_qce_user where user = '$username'"; 
$result = mysql_query($q,$conn); 
$dbarray = mysql_fetch_array($result);
Voila si quelqu'un a une idée sur le problème..
sagitarium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2006, 18h13   #2
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
Salut,
$dbarray["Q37"] n'est pas un tableau, que contient ton champ Q37 ? Ce serait pas une liste de valeurs séparées par un séparateur, du type "2|13|33" ?
Bye
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2006, 18h15   #3
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 148
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 148
Points : 26
Points : 26
ben c'est ce que me retourne le formulaire, cela correspond a la liste multiple..
sagitarium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2006, 18h24   #4
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
Tu devrais vérifier ce que tu as dans ta base, si t'insères directement $_POST['Q37'] ca ne peut pas marcher.
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2006, 21h09   #5
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 148
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 148
Points : 26
Points : 26
Dans ma base de données, j'ai bien des valeurs espacée par un séparateur comment je peux mettre ça dans un tableau..
sagitarium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2006, 23h09   #6
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
Dans ce cas il faut recréer un tableau depuis ta chaîne avec explode().

ex :

Code :
1
2
$arr = explode("|", $dbarray["Q37"]);
if(in_array('1', $arr)) {}
Bye
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2008, 11h57   #7
Membre habitué
 
Homme Serge
Inscription : octobre 2004
Messages : 337
Détails du profil
Informations personnelles :
Nom : Homme Serge
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : octobre 2004
Messages : 337
Points : 124
Points : 124
Voici le code que j'ai :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
$query = "SELECT P.ID_PROFIL, P.LIB_PROFIL FROM PROFIL P ORDER BY LIB_PROFIL;";
$result = mysql_query($query);
$query2 = "SELECT ID_PROFIL FROM ACCEDE WHERE ID_ELEMENT_MENU= $menuid;";
$result2 = mysql_query($query);
$row2 = mysql_fetch_array($result2);
if ($result==false){
	// echo ("Erreur requète SQL : ".$query);
	message_erreur("065",$_SESSION['emailadmin'],"gestion_menu");
} else {
	echo "<td>";
	echo "<SELECT NAME=\"profil[]\" SIZE=\"5\" MULTIPLE>";
	while ($row = mysql_fetch_array($result)) {
		echo "<OPTION VALUE='".$row['ID_PROFIL']."'";
		if (in_array($row['ID_PROFIL'], $row2)) {
			echo " SELECTED";
		}
		echo ">".$row['LIB_PROFIL']."</OPTION>";
	}
	echo "</SELECT>";
	echo "</td>";
}
Problème : il n'y a qu'un élément qui est "selected", alors qu'il devrait y en avoir plusieurs.

Une idée ?
senacle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2008, 14h52   #8
Membre habitué
 
Homme Serge
Inscription : octobre 2004
Messages : 337
Détails du profil
Informations personnelles :
Nom : Homme Serge
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : octobre 2004
Messages : 337
Points : 124
Points : 124
Il faut d'abord construire le tableau avant de faire in_array :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
$query = "SELECT ID_PROFIL FROM ACCEDE WHERE ID_ELEMENT_MENU= $menuid;";
$result = mysql_query($query);
if ($result==false){
	// echo ("Erreur requète SQL : ".$query);
	message_erreur("065",$_SESSION['emailadmin'],"gestion_menu");
} else {
	$k =0;
	while ($row = mysql_fetch_array($result)) {
		$idprofil[$k]=$row[0];
		$k++;
	}
}
Code :
1
2
3
4
5
6
 
......
 
if (in_array($row['ID_PROFIL'], $idprofil)) {
			echo " SELECTED";
......
senacle 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 06h56.


 
 
 
 
Partenaires

Hébergement Web