2017-07-07 2 views
0

J'ai un problème très méchant ....Obtenir la sortie de la base de données sur le serveur, mais pas sur le script php

Mon utilisation de ce code: Je veux passer à travers AJAX, à seulement 5 dossiers à chaque fois que je clique sur le plus -bouton. Je ne suis pas encore si loin ...

Ce script doit juste me procurer 5 enregistrements d'un utilisateur spécifique.

Le problème:

Ainsi, les requêtes SQL exécutées sans aucun problème sur la base de données. Mais quand je veux le faire en PHP-script, je reçois UNIQUEMENT de la première requête le counter() ET la deuxième requête me donne un tableau vide de l'instruction PDO.

CODE:

if (empty($_SESSION['counter']) || ($_SESSION['counter'] < 0)) { 

     $sql = 'SELECT count(record.record_id) AS counter FROM record 
       LEFT JOIN recordbook ON record.record_id = recordbook.record 
       WHERE user = ?'; 

       $sth = $this->dbc->prepare($sql); 
       $sth->execute(array($u_id['user_id'])); 
       $count = $sth->fetch(); 

       $_SESSION['counter'] = $count['counter']; 
       var_dump($_SESSION); 
      } 
      $_SESSION['counter'] = $_SESSION['counter'] - 5; 

      $sql = 'SELECT record.record_id, status, place, record.record AS records, comment, recorddate 
        FROM record LEFT JOIN recordbook ON record.record_id = recordbook.record 
        WHERE user = ? ORDER BY record.record_id DESC LIMIT ?,5'; 
      $sth = $this->dbc->prepare($sql); 
      $sth->execute(array($u_id['user_id'], 
           $_SESSION['counter'])); 

      $output = $sth->fetchAll(); 
} 

L'espoir que quelqu'un sait comment résoudre ce ...

structure de la table

Field | Type | Null | Key | Default | Extra 
record_id | int(10) unsigned | NO | PRI NULL | auto_increment 
status | varchar(200) | YES | NULL | 
place | varchar(200) | YES | NULL 
record | longtext | YES NULL 
comment | longtext | YES | NULL 
recorddate | timestamp | YES | CURRENT_TIMESTAMP 
attachment_id | int(10) unsigned | YES | MUL | NULL 
+0

Où boucle pensez-vous par votre chercher? –

+0

Pourquoi faites-vous DESC LIMIT?, 5 si vous voulez que 5 enregistrements laissent tomber le?, Et où est votre boucle? – clearshot66

+0

remplacer '$ output = $ sth-> fetchAll();' avec 'while ($ data = $ sth-> fetch()) {var_dump ($ data);}' et voir si vos données sont là. – Dimi

Répondre

0

ok, fait! Aucune erreur ....

besoin de lier les variables à la requête. Il semble que ce soit seulement avec préparer et exécuter, n'est-ce pas assez clair. Alors ajoutez bindParam (pour entier) ou bindValue (pour cordes) au code, que ça va bien et en douceur :)

avons vu que sur PHP.net et debugDumpParams() sur PDOStatement vous pouvez voir, comment votre requête fonctionne avec les Params que vous avez établis.

Voici le manuel http://php.net/manual/de/pdostatement.debugdumpparams.php