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

PHP & Base de données Discussion :

[SQL] Soucis requête SQl sur serveur Free


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Points : 43
    Points
    43
    Par défaut [SQL] Soucis requête SQl sur serveur Free
    Bijour
    Bon j'ai un petit soucis, je bricole lentement mon ti site et je suis tompé sur un petit problème dont je ne trovue pint la réponse :euh:
    Tout d'abord voici le bout de code qui semble me poser problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $retour = mysql_query('SELECT * FROM News ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage)or die(mysql_error());
    Comme vous le voyiez (surtout si vous avez suivit le tuto) je tente un affichage par page de mes news. Seulement on me signale un problème sur l'utilisation d'un '' dans mon code et on m'invite à vérifier si la syntaxe est bonne selon la version de Mysql de mon serveur. Sur free la version est : MySQL 5.0.37 .

    Est-ce que vous avez une idée du problème?

    Voici le code complet au cas où :
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    <head>
    <title>Liste des news</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <style type="text/css">
    h2, th, td
    {
    text-align:center;
    }
    table
    {
    border-collapse:collapse;
    border:2px solid black;
    margin:auto;
    }
    th, td
    {
    border:1px solid black;
    }
    </style>
    </head>
     
    <body>
     
     
    <h2><a href="index.php?page=Rediger_News">Ajouter une news</a></h2>
     
    <?php
    mysql_connect("localhost", "shotgun01", "otwo8ckx");
    mysql_select_db("shotgun01");
     
    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'on veut poster une news ?
    //-----------------------------------------------------
     
    if (isset($_POST['titre']) AND isset ($_POST['auteur']) AND isset($_POST['contenu']))
    {
    $titre = addslashes($_POST['titre']);
    $auteur = addslashes($_POST['auteur']);
    $contenu = addslashes($_POST['contenu']);
     
    // On vérifie si c'est une modification de news ou pas
    if ($_POST['id'] == 0)
    {
    // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
    mysql_query("INSERT INTO News VALUES('', '" . $titre . "', '" . time() . "', '" . $auteur . "', '" . $contenu . "')")or die(mysql_error());
    }
    else
    {
    // On protège la variable "id" pour éviter une faille SQL
    $_POST['id'] = addslashes($_POST['id']);
    // C'est une modification, on met juste à jour le titre et le contenu
    mysql_query("UPDATE News SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id'] . "'")or die(mysql_error());
    }
    }
     
    //--------------------------------------------------------
    // Vérification 2 : est-ce qu'on veut supprimer une news ?
    //--------------------------------------------------------
     
    if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
    {
    // Alors on supprime la news correspondante
    // On protège la variable "id_news" pour éviter une faille SQL
    $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
    mysql_query('DELETE FROM News WHERE id=\'' . $_GET['supprimer_news'] . '\'')or die(mysql_error());
    }
    ?>
     
    <table><tr>
    <th>Modifier</th>
    <th>Supprimer</th>
    <th>Titre</th>
    <th>Date</th>
    </tr>
     
    <?php
    //Affichage news avec système page
    if (isset($_GET['page']))
    {
    $page = $_GET['page']; // On récupère le numéro de la page
    }
    else // La variable n'existe pas, c'est la première fois qu'on charge la page
    {
    $page = 1; // On se met sur la page 1 (par défaut)
    }
    $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
     
    //$retour = mysql_query('SELECT * FROM News ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage)or die(mysql_error());
    $sql = 'SELECT * FROM News ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage . '\'';
    $retour = mysql_query($sql)or die(mysql_error());
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    {
    ?>
     
    <tr>
    <td><?php print '<a href="Rediger_News.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
    <td><?php print '<a href="News.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
    <td><?php print stripslashes($donnees['titre']); ?></td>
    <td><?php print date('d/m/Y', $donnees['timestamp']); ?></td>
    </tr>
     
    <?php
    } // Fin de la boucle qui liste les news
     
    //-----------------------------------------
    // On écrit les liens vers chacune des pages
    // -----------------------------------------
    // On met dans une variable le nombre de messages qu'on veut par page
    $nombreDeMessagesParPage = 50; // uniquement dans le cas de l'admin, en affichage normal ça sera 10
    // On récupère le nombre total de messages
    $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM News');
    $donnees = mysql_fetch_array($retour);
    $totalDesMessages = $donnees['nb_messages'];
    // On calcule le nombre de pages à créer
    $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
    // Puis on fait une boucle pour écrire les liens vers chacune des pages
    print 'Page : ';
    for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
    print '<a href="News.php?page=' . $i . '">' . $i . '</a> '; //attention pour les liens !
    }
     
    mysql_close();
    ?>
     
     
    </table>
     
    </body>
    </html>

  2. #2
    Membre régulier Avatar de reno_tidus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 132
    Points : 122
    Points
    122
    Par défaut
    Dans cette requte,

    Citation Envoyé par Ryuuku Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $retour = mysql_query('SELECT * FROM News ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage)or die(mysql_error());
    il ne faut pas utiliser le .(point) pour concatener les variable,tu peut les inscrire directement dans ta requete,comme ceci,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $retour = mysql_query('SELECT * FROM News ORDER BY id DESC LIMIT $premierMessageAafficher, $nombreDeMessagesParPage')or die(mysql_error());
    Vos questions, c'est sur le forum, pas de M.P.
    Commencez par lire la F.A.Q., rechercher dans le forum et dans les cours et surtout sur l'ami


    Une fois votre problème résolu n'oubliez pas le tag

    http://www.ententemontignyhandball.com/

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 34
    Points
    34
    Par défaut
    > reno_tidus

    Il peut très bien utiliser la concaténation , par contre ta réponse, elle risque de ne pas marcher du tout avec des apostrophes ( ' ) , il aurait fallu les remplacer par des guillemets ( " ) pour que ca marche!

    > Ryuuku

    As tu vérifié si $premierMessageAafficher et $nombreDeMessagesParPage sont bien des nombres ! Et pas des valeurs nulles?

  4. #4
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    Essaie ceci...


    $retour = mysql_query("SELECT * FROM News ORDER BY id DESC LIMIT '" . $premierMessageAafficher . "',(ceci si ta vars $premierMessageAafficher contient du texte sinon ".$premierMessageAafficher." si c un nombre idem pr $premierMessageAafficher ) '".$nombreDeMessagesParPage."')

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2005
    Messages : 357
    Points : 537
    Points
    537
    Par défaut
    Salut,
    Si tu pouvais nous communiquer le message d'erreur exact que tu reçois, ça serait intéressant.

Discussions similaires

  1. requête SQL: recuperation de données sur plusieurs années
    Par MisterGé dans le forum Langage SQL
    Réponses: 5
    Dernier message: 01/08/2007, 23h10
  2. Requête SQL ne marche pas sur SQL Server
    Par phpieur dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/05/2007, 13h24
  3. [SQL] Deux requêtes SQL sur le même formulaire
    Par amazircool dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 18/02/2007, 02h23
  4. Réponses: 8
    Dernier message: 09/02/2007, 12h58

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