[RESOLU] Requête vide

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Requête vide

Re: Requête vide

par weri » 07 sept. 2013, 17:56

C'est bon, j'ai compris. En fait j'avais aussi une erreur dans la formulation de ma requête qui faisait que j'avais des résultats incohérents. Maintenant ça va, merci beaucoup !

Re: Requête vide

par moogli » 05 sept. 2013, 15:20

Le fetch retourne false s'il n'y a pas (ou plus) d'enregistrement a fournir.

@+

Re: Requête vide

par weri » 05 sept. 2013, 00:41

Salut Moogli, et merci pour aide.

Hum... je n'y arrive pas. En fait, que renvoie exactement mysql quand aucune ligne ne correspond à la requête ? Si je teste avec une égalité comme celle-ci, ça ne devrait pas marcher ?
if($enreg[0]!=""){
// il y a un résultat
}else{
// aucun résultat
}

Re: Requête vide

par moogli » 04 sept. 2013, 10:47

Le faut que tu n'ai as de réponse ne veux pas dire que result égale a false.

D'ailleurs si $result == false tu ne peux pas exécuter le while (car erreur sur le fetch).
D'ailleurs tu n'as pas besoin de while la requête ne retrouvant qu'une seule ligne.

Je ferais quelque chose comme ça :
<?php
$result=mysql_query($chainesql);
If ($result !== false) {
    $enreg =mysql_fetch_row($result));
    if($enreg[0]>=0){
        $enreg[0]+=1;
    } else {
        $enreg[0] = 0;
    }
     array_push($tableau,$enreg[0]);
}
?>

Tu peux ajouter un var_dump($enreg); juste après le mysql_fetch_row afin d'être certain de la valeur dans le cas ou la jointure n'est pas satisfaite (ou le prédicat).

Pour info l'extension mysql est maintenant dépréciée (donc vouée à disparaître).
Tu peux utiliser l'extension mysqli en remplacement, elle est globalement similaire, la plus grosse différence c'est l'ajout de la variable de connexion dans les fonctions.
Ceci te permettra d'avoir un script prêt pour l'avenir ;)

@+

Requête vide

par weri » 04 sept. 2013, 04:43

Bonjour,

Je cherche à pousser la valeur 0 dans un tableau lorsque ma requête sql est vide. J'ai essayé ce code, qui ne marche pas. J'ai vu des choses sur le net, mais je ne les comprends pas, c'est au-dessus de mon niveau. Pourriez-vous jeter un coup d'oeil à ce code et me suggérer une modif ?
for($i=0;$i<$long;$i++){
$chainesql=
"SELECT MAX(ordre)
FROM dt_lecon_liste
INNER JOIN flw_parcours_lecons
ON dt_lecon_liste.lecon_liste_id=flw_parcours_lecons.lecon_id
WHERE dt_lecon_liste.collection_id='$cours_id[$i]'
AND flw_parcours_lecons.fait='1'
AND flw_parcours_lecons.key_id='$user_id'";
$result=mysql_query($chainesql);
while($enreg =mysql_fetch_row($result)){
if($enreg[0]>=0){
array_push($tableau,$enreg[0]+1);
}else if(!$result){
// Ici avec cette ligne, j'espérais pousser 0
// avec une requête vide...
array_push($tableau,0);
}
}
Un grand merci par avance,