Forcer le sql à donner tous les résultats d'un champ
Bonjour ;
J'ai un souci avec une requête sql qui met à mal mon application :(
En effet, sur la dernière liste (Select) de 03 listes de type (dependent multi boxe ) la requete se contente de me donner le premier résultat de la liste seulement .
Comment faire pour avoir tous les données attendues dans cette liste:|
NB : 1 - les 02 dernières listes sont dans une même table et la CP est un "intiger"
2 - 02 première liste fonctionnent normalement
Voilà le bout du javascript pour cette liste
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| $('#suj').change(function(){
var aid = $(this).val();
if (aid){
$.POST("dataaa.php",
{ suj : aid },
function(data) {
$('#lng').html(data);
});
}
else {
$('#lng').html('<option>Choix langue</option>');
}
}); |
Voilà le bout HTML de cette liste
Code:
1 2 3 4 5 6
| <select type= "text" name ="lng" id= "lng" style="width:110px; position: relative; right: 247px; font-weight: bold; text-align:center;" >
<option value= "">Choix langue</option>
<?php
include 'dataaa.php';
?>
</select> |
voilà le fichier PHP joint au java
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 29
| <?php
mysqli_set_charset($conn,'utf8');
if(isset($_POST['suj']) && !empty ($_POST['suj'])){
$id = $_POST['suj'];
$query =("SELECT id_oeuv, lng FROM 3_oeuv WHERE 3_oeuv.id_oeuv = ? ");
if($result =mysqli_prepare ($conn, $query )){
mysqli_stmt_bind_param($result, 's', $id);
mysqli_stmt_execute($result);
$data=mysqli_stmt_get_result($result);
mysqli_stmt_store_result($result);
$count =mysqli_stmt_affected_rows($result);
if ($count >0){
while ( $row = mysqli_fetch_array($data)){
echo '<option value="'.htmlspecialchars($row['id_oeuv']).'"';
if(isset($_POST['lng']) && $_POST['lng'] == $row['id_oeuv']) echo 'selected="selected"';
echo ">".htmlspecialchars($row['lng']).'</option>';
}
mysqli_free_result($data);
}
else {
echo '<option>Not Nom Availibal :'.$count.'</option>';
}
mysqli_stmt_close($result);
}
}
else {
echo '<option>Eroor </option>';
}
?> |
Merci d'avance