Problème de syntaxe

Répondre
jackbocar
le 06/10/2008 à 16:19
jackbocar
Voici mon code SQL, il fonctionne très bien, c'est un SELECT simple.

<?php
$sql = 'SELECT * FROM librairie WHERE visible="1" ORDER BY auteur ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;
?>



Voici celui qu'il me faut, mais, je ne parviens pas à placer les simples cotes et les doubles cotes, j'ai des erreurs sans arrêt.

<?php
$stmt = $dbh->prepare("SELECT * FROM librairie WHERE visible='1' ORDER BY auteur ASC LIMIT") '.$_GET['debut'].','.$nb_affichage_par_page;

OU

$stmt = $dbh->prepare("SELECT * FROM librairie WHERE visible='1' ORDER BY auteur ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page");

OU

$stmt = $dbh->prepare("SELECT * FROM librairie WHERE visible='1' ORDER BY auteur ASC LIMIT" '.$_GET[ 'debut'].','.$nb_affichage_par_page);
?>


Comment faire ?

Merci de votre aide

Jack Bocar
jackbocar
le 06/10/2008 à 16:27
jackbocar
Problème de syntaxe

Voici mon code complet qui fonctionne très bien, mais avec une limite manuelle de 5 champs par page.

<?php
$hostname = 'localhost';
$username = 'jackbocar';
$password = 'XXXXXXXXXXX';
$dbname = 'base_test';

try {
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $dbh->prepare("SELECT id, auteur, type, image, titre, menu, news, isbn FROM librairie ORDER BY auteur ASC LIMIT 5");


/*** bind the paramaters ***/
$stmt->bindParam(':id', $id);
$stmt->bindParam(':auteur', $auteur);
$stmt->bindParam(':titre', $titre);
$stmt->bindParam(':image', $image);
$stmt->bindParam(':menu', $menu);
$stmt->bindParam(':news', $news);
$stmt->bindParam(':isbn', $isbn);

$stmt->execute();

while($row = $stmt->fetch())
{
print ('<a name="'.$row['id'].'"></a>');
print '<div class="LIBRAIRIE"><span class="LIBRAIRIE-id">'.$row['id'].' |</span> &nbsp; <span class="LIBRAIRIE-auteur">Auteur (s) : '.$row['auteur'].'</span> &nbsp; <span class="LIBRAIRIE-titre">'.$row['titre'].'</span>
</div><div class="clearfix" id="LIB"><p class="LIB-style-img">'.$row['image'].'</p>'.nl2br($row['news']).'</div><div class="LIB-FOOT"><span class="LIB-FOOT-isbn">Isbn : '.$row['isbn'].'</span><span class="LIB-FOOT-top"><a href="#" class="menuNav">Top</a></span><span class="LIB-FOOT-print">Print</span></div><br>';
} /*fin première execution */

print ('</div><div id="sidebar" class="column">');
print ('<div class="menuBarTop">La Librairie</div>');

$stmt->execute();
while($row = $stmt->fetch())
{

print ('<a href="#'.$row['id'].'" class="menuNav">'.$row['menu'].'</a><br />');
} /*fin deuxième execution */

$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
<br />


Merci de votre aide

Jack Bocar
zebden
le 06/10/2008 à 16:37
zebden
Lu,

essaie ceci :

<?php
$stmt=$dbh->prepare('SELECT * FROM librairie WHERE visible=1 ORDER BY auteur ASC LIMIT '. $_GET['debut'] . ', ' . $nb_affichage_par_page);
?>


Revoie la concaténation et les délémiteurs. Parce soit pour délimiter ta chaine , tu choisis les quotes et comme délémiteurs à ta requête des guillemets soit le contraire.
Ensuite pour concaténer, tu sors de ta chaine via le délimiteur ici les quotes et t'insères la variable.

Bon courage ^^
zebdinou pour les intimes / Blog : http://www.zebden.fr
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours