IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

SQL PDO 1ere ligne non récupérée


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 169
    Par défaut SQL PDO 1ere ligne non récupérée
    Bonjour.

    Je ne comprend pas pourquoi la première ligne sql trouvée n'est pas ajoutée.
    Quelque soit son numéro de ligne.
    Si j'inverse en DESC c'est la dernière qui ne s'affiche pas évidement.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $s="SELECT maj, id FROM perso_candidature WHERE ".$whitelist." etat !=1 ORDER BY id ASC";
    $r=$db->query($s);
     
    // ARRAY liste des candidatures
    if ($r->fetch(PDO::FETCH_OBJ))
    {
        while($w=$r->fetch(PDO::FETCH_OBJ)) 
        {
          echo $w->id;
        }
    }
    Bonne journée

  2. #2
    Membre averti
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2015
    Messages : 50
    Par défaut
    hello
    je ne sais pas à quoi correspond ta variable $whitelist mais ta question est liée à ta clause WHERE je pense ?

  3. #3
    Membre émérite Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 541
    Par défaut
    $r->fetch(PDO::FETCH_OBJ) fait déjà avancer le curseur donc ton while tu commences par la 2ème ligne donc retire le if

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 169
    Par défaut
    Sauf que ca va bugger si le while ne trouve rien.
    Enfin il me semble qu'à mon souvenir ca bug.

    Comment tester avant sans lui faire prendre un cran ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Au lieu de faire appel à tes "souvenirs", lis la documentation. Et fais des recherches.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ou même essaie.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Honnêtement, la doc est pas si évidente que ça quand on débute en PDO. Les arbres cachent la forêt.
    J'ai fait ça pour un copain, si ça peut t'aider à piger...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    try{
    	//la connexion
    	$encodage=array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES "UTF8"');
    	$dbh = new PDO('mysql:host=myhost;dbname=mydb', 'login', 'password', $encodage); 
     
    	//imaginons une table fruit avec id (autoincrement), nom(varchar 50), couleur (enum), poids (int en grammes), calories (int), et date_saisie(timestamp)
    	//ajoutons la clé d'unicité suivante (primordial) : nom+poids+calories = unique 
    	//exemple d'acces en lecture via une saisie utilisateur
    	$sql='SELECT nom, calories
    	FROM fruit
    	WHERE poids < ? AND couleur = ?';
    	$sth = $dbh->prepare($sql);
    	$sth->execute(array($_POST['poids_maxi'], $_POST['couleur'));
    	$data=array();
    	while($row=$sth->fetch(PDO::FETCH_ASSOC)){
    	   $data[]=$row;
    	}
    	echo '<pre>';
    	print_r($data);
    	echo '</pre>';
    	//exemple d'acces en écriture via une saisie utilisateur
    	//ignore pour ne pas que ça couine en cas de tentative d'insérer un doublon : ça n'insèrera rien, mais ça ne fera pas planter le script
    	$sql='insert ignore into fruit values (NULL,?,?,?,?,?)';
    	$sth = $dbh->prepare($sql);
    	//encore une fois, chaque point d'interrogation ci dessus doit etre fourni ci dessous et dans l'ordre de la table
    	if($sth->execute(array($_POST['nom'], $_POST['couleur'],$_POST['poids'],$_POST['calories'],date("%Y-%m-%d :H:i:s")))){
    		echo 'Votre insertion a bien été effectuée<br/>';
    		$stmt = $dbh->prepare('select * from fruit order by date_saisie desc;');
    		$stmt->execute();
    		while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
    		   echo '<pre>';
    		   print_r($row);
    		   echo '</pre>';
    		}
    	}
    	else{
    		echo 'ERREUR insertion<br/>';
    	}
    	//déconnexion propre
    	unset($dbh);
    }
    catch( PDOException $Exception ) {
    	echo $Exception->getMessage();
    }
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 169
    Par défaut
    Merci Dendrite J'avoue avoir passé une bonne semaine pour comprendre PDO à moitié. (je sort de 10 ans sans prog)
    Quand je parlais de mes souvenir je en parlais pas de il y a 10 ans mais il y a quelques heures.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Et moi, quand je disais "fais des recherches",
    c'est que, souvent, les questions ont DEJA été posées, et les réponses données.

    Donc, avant de poster:

Discussions similaires

  1. [MySQL] [PDO] la 1ere ligne ne s'affiche pas
    Par elespanool dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/09/2013, 22h30
  2. Proc sql insert into retour à la 1ere ligne
    Par Th4ñãTا dans le forum SAS Base
    Réponses: 0
    Dernier message: 06/05/2010, 17h22
  3. [Pervasive SQL]Migration oui ou non?
    Par nenex dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 02/11/2004, 18h03
  4. Réponses: 2
    Dernier message: 01/06/2004, 16h08
  5. Renommer le titre de colonnes par la 1ere ligne
    Par Tche55 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/02/2004, 13h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo