[RESOLU] simple boucle

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] simple boucle

Re: simple boucle

par nef1912 » 11 juin 2014, 14:23

Après plusieurs tests, j'y suis parvenu!

Merci de vos conseils avisés. :)

Re: simple boucle

par sirakawa » 10 juin 2014, 15:49

Pour les requêtes du type SELECT, SHOW, DESCRIBE, EXPLAIN et les autres requêtes retournant un jeu de résultats, mysql_query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur. (cf http://us2.php.net/manual/fr/function.mysql-query.php).....

Re: simple boucle

par yann18 » 10 juin 2014, 15:33

ok merci!

Par contre, voilà ce qu'il me dit :
Call to a member function fetch_assoc() on a non-object
Est-ce parce que $dispo vaut false?
Pour déterminer le type de $dispo il faut d'abord déterminer le type de retour de la méthode query() de ta classe db_mysqli, méthode dont j'ignore la signature.
Peux-tu poster ta classe db_mysqli pour voir quelles sont les méthodes définies?

Re: simple boucle

par sirakawa » 10 juin 2014, 15:31

diverses suggestions:
function getDispo($id_materiel)
{
         $db = new db_mysqli();
         $query = "SELECT * FROM reservation WHERE id_materiel='".$id_materiel."'";
      print "<br>$query"; //et tester ce qui s'affiche avec PHPMYADMIN ou équivalent
       //  return $db->query($query);
      $bidule = $db->query($query);
    var_dump($bidule);
    return $bidule;
}

Re: simple boucle

par nef1912 » 10 juin 2014, 15:01

ok merci!

Par contre, voilà ce qu'il me dit :
Call to a member function fetch_assoc() on a non-object
Est-ce parce que $dispo vaut false?

Re: simple boucle

par yann18 » 10 juin 2014, 14:32

je suis desolé en faisant du copier-coller il y a une coquille qui s'est glissée.c'est la variable $dispo à la place de $result.
 $dispo = getDispo($_GET['_id_']);
    while($row = $dispo->fetch_assoc() ){

   //affichage des enregistrements
}
   
  var_dump($row);
var_dump te permet d'afficher le tableau $row donc les enregistrements qui proviennent de la bd.$row étant un tableau associatif tu peux le parcourir avec une boucle while

Re: simple boucle

par nef1912 » 10 juin 2014, 14:06

Merci de ta réponse. :)
Effectivement, cette fonction paraît plus adaptée. Mais j'ai un peu de mal à l'utiliser avec une architecture comme j'utilise.
Si je comprends bien, $result remplace $dispo dans la récupération des données? Comme ça, il vaut soit les valeurs contenues soit faux. Et après je parcours le résultat avec un boucle while?
Désolé si mes questions paraissent stupides mais j'ai un peu de mal à cerner cette fonction. :roll:

Re: simple boucle

par yann18 » 10 juin 2014, 13:32

bonjour,
il manque une fonction comme fetch_assoc pour récupérer le résultat
function getDispo($id_materiel)
{
        $db = new db_mysqli();
        $query = "SELECT * FROM reservation WHERE id_materiel='".$id_materiel."'";
     
        return $db->query($query);
}
à partir de là tu peux faire un debogage sur le résultat de la requête:
 $dispo = getDispo($_GET['_id_']);
    $row = $dispo->fetch_assoc();
   
  var_dump($row);

simple boucle

par nef1912 » 10 juin 2014, 10:57

Bonjour,

Je vous écris pour un problème qui vous paraîtra probablement très élémentaire mais bon... je préfère demander plutôt que de rester bloqué.
J'ai une table qui enregistre des locations.
J'ai donc une table sous cette forme :
Image
Question toute bête, quelle boucle utiliser pour lister toutes les dates où id_materiel = 1 ?

Je récupère les infos sous cette forme :
function getDispo($id_materiel)
{
	$db = new db_mysqli();
	$query = "SELECT * FROM reservation WHERE id_materiel='".$id_materiel."'";
	$infos = $db->query($query);
	return $infos[0];
}
$dispo = getDispo($_GET['_id_']);
if($dispo['date_debut'] && $dispo['date_fin'])
                        echo date("d-m-Y", strtotime($dispo['date_debut']))." / ".date("d-m-Y",strtotime($dispo['date_fin']));
                        
                    else
                        echo "Disponible";
Comment faire la boucle pour afficher toutes les dates de id_materiel = matériel selectionné?

Merci d'avance

Cordialement,