Petite requête mysql
Gustave
-
Gustave -
Gustave -
Bonsoir à tous,
J'aimerais faire une requête mysql pour afficher les données d'un id précis défini dans l'url de la page. (C'est bien dans l'optique d'ajouter des commentaires à des news sur un blog)
Le code utilisant PDO marche:
--------------------------------------------------------------------------------------
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
$req = $bdd->prepare('SELECT id, pseudo, DATE_FORMAT(heure, \' à %Hh%i\') AS heures, message, DATE_FORMAT(dates, \'le %d/%m/%Y\') AS dates_fr FROM blog WHERE id = ?');
$req->execute(array($_GET['blog']));
$donnees = $req->fetch();
?>
<div class="poste">
<?php echo $donnees['pseudo'].' a publié : '.$donnees['dates_fr'].$donnees['heures'].'<br/>'. nl2br(htmlspecialchars($donnees['message'])).'<br/><br/>';?> </div>
<?php
$req->closeCursor();
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
--------------------------------------------------------------------------------------
Mais je souhaiterais obtenir l'équivalent avec mysql :
--------------------------------------------------------------------------------------
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('test');
$query = mysql_query("SELECT id, pseudo, DATE_FORMAT(heure, \' à %Hh%i\') AS heures, message, DATE_FORMAT(dates, \'le %d/%m/%Y\') AS dates_fr FROM blog WHERE id = '$_GET[blog]'") or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$donnees = mysql_fetch_array($query);
?>
<div class="poste">
<?php echo $donnees['pseudo'].'publié:'.$donnees['dates_fr'].$donnees['heures'].'<br/>'. nl2br(htmlspecialchars($donnees['message'])).'<br/><br/>';?></div>
<?php
mysql_close();
?>
--------------------------------------------------------------------------------------
Mais ça ne fonctionne pas. (Erreur SQL ! You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\' à %Hh%i\') AS heures, message, DATE_FORMAT(dates, \'le %d/%m/%Y\') AS dates_f' at line 1)
Je vous remercie d'avance.
Bonne soirée. :)
J'aimerais faire une requête mysql pour afficher les données d'un id précis défini dans l'url de la page. (C'est bien dans l'optique d'ajouter des commentaires à des news sur un blog)
Le code utilisant PDO marche:
--------------------------------------------------------------------------------------
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
$req = $bdd->prepare('SELECT id, pseudo, DATE_FORMAT(heure, \' à %Hh%i\') AS heures, message, DATE_FORMAT(dates, \'le %d/%m/%Y\') AS dates_fr FROM blog WHERE id = ?');
$req->execute(array($_GET['blog']));
$donnees = $req->fetch();
?>
<div class="poste">
<?php echo $donnees['pseudo'].' a publié : '.$donnees['dates_fr'].$donnees['heures'].'<br/>'. nl2br(htmlspecialchars($donnees['message'])).'<br/><br/>';?> </div>
<?php
$req->closeCursor();
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
--------------------------------------------------------------------------------------
Mais je souhaiterais obtenir l'équivalent avec mysql :
--------------------------------------------------------------------------------------
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('test');
$query = mysql_query("SELECT id, pseudo, DATE_FORMAT(heure, \' à %Hh%i\') AS heures, message, DATE_FORMAT(dates, \'le %d/%m/%Y\') AS dates_fr FROM blog WHERE id = '$_GET[blog]'") or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$donnees = mysql_fetch_array($query);
?>
<div class="poste">
<?php echo $donnees['pseudo'].'publié:'.$donnees['dates_fr'].$donnees['heures'].'<br/>'. nl2br(htmlspecialchars($donnees['message'])).'<br/><br/>';?></div>
<?php
mysql_close();
?>
--------------------------------------------------------------------------------------
Mais ça ne fonctionne pas. (Erreur SQL ! You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\' à %Hh%i\') AS heures, message, DATE_FORMAT(dates, \'le %d/%m/%Y\') AS dates_f' at line 1)
Je vous remercie d'avance.
Bonne soirée. :)
A voir également:
- Petite requête mysql
- Petite amie virtuelle en français gratuit - Accueil - Intelligence artificielle
- Mysql community server - Télécharger - Bases de données
- Petite croix snap ✓ - Forum Snapchat
- Mysql error in file: /engine/classes/mysql.php at line 53 ✓ - Forum Réseaux sociaux
- Petite majuscule word ✓ - Forum Word
13 réponses
Bonsoir
puisque ta requête est un select, est ce que si tu réalise une requête comme
Juste pour voir si sa fonctionne (si les colonnes se nomment bien heure et date)
puisque ta requête est un select, est ce que si tu réalise une requête comme
$query = mysql_query("SELECT id, pseudo,heures, message,dates, FROM blog WHERE id = '$_GET[blog]'") or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
Juste pour voir si sa fonctionne (si les colonnes se nomment bien heure et date)
Ah merci !
Mais j'ai une autre erreur de syntaxe. :/
Erreur SQL !
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM blog WHERE id = '39'' at line 1
La valeur de $_GET semble bien être enregistrée puisque le message d'erreur affiche id = 39. Sinon je ne vois pas vraiment d'où vient l'erreur ...
Mais j'ai une autre erreur de syntaxe. :/
Erreur SQL !
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM blog WHERE id = '39'' at line 1
La valeur de $_GET semble bien être enregistrée puisque le message d'erreur affiche id = 39. Sinon je ne vois pas vraiment d'où vient l'erreur ...
ton id doit être in entier (int), il ne faut pas de guillemet autour de ta valeur $_GET[blog]
donc le
WHERE id = '$_GET[blog]'
devient
WHERE id = $_GET[blog]
donc le
WHERE id = '$_GET[blog]'
devient
WHERE id = $_GET[blog]
J'ai écrit ça :
$query = mysql_query("SELECT id, pseudo,heures, message,dates, FROM blog WHERE id = $_GET[blog]") or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
Mais cela ne marche toujours pas
Erreur SQL !
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM blog WHERE id =39' at line 1
$query = mysql_query("SELECT id, pseudo,heures, message,dates, FROM blog WHERE id = $_GET[blog]") or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
Mais cela ne marche toujours pas
Erreur SQL !
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM blog WHERE id =39' at line 1
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
si tu parse ta requete en deux instructions
$query = "SELECT id, pseudo,heures, message,dates, FROM blog WHERE id = $_GET[blog]";
echo $query;
peut tu me dire si la requete est bien affiché ?
$query = "SELECT id, pseudo,heures, message,dates, FROM blog WHERE id = $_GET[blog]";
echo $query;
peut tu me dire si la requete est bien affiché ?
A tu accès a un phpmyadmin ?
Si oui, lorsque tu va dans la partie "SQL" pour taper des requete et que tu essaye cette requête
SELECT id, pseudo,heures, message,dates, FROM blog
et
SELECT id, pseudo,heures, message,dates, FROM blog WHERE id = 39
ou
SELECT id, pseudo,heures, message,dates, FROM blog WHERE id = '39'
est ce que l'une d'elle fonctionne ?
sa me parait bizarre car la requête à l'air d'être correcte.
Si oui, lorsque tu va dans la partie "SQL" pour taper des requete et que tu essaye cette requête
SELECT id, pseudo,heures, message,dates, FROM blog
et
SELECT id, pseudo,heures, message,dates, FROM blog WHERE id = 39
ou
SELECT id, pseudo,heures, message,dates, FROM blog WHERE id = '39'
est ce que l'une d'elle fonctionne ?
sa me parait bizarre car la requête à l'air d'être correcte.
Y'a une virgule en trop dans
pseudo,heures, message,dates,
à la fin.
Ca devrait etre
pseudo,heures, message,dates
pseudo,heures, message,dates,
à la fin.
Ca devrait etre
pseudo,heures, message,dates
Finalement ça marche en écrivant :
$query = mysql_query("SELECT id, pseudo, DATE_FORMAT(heure, ' à %Hh%i') AS heures, message, DATE_FORMAT(dates, 'le %d/%m/%Y') AS dates_fr FROM blog WHERE id ='{$_GET['blog']}'")
d'où le code en entier :
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('test');
$query = mysql_query("SELECT id, pseudo, DATE_FORMAT(heure, ' à %Hh%i') AS heures, message, DATE_FORMAT(dates, 'le %d/%m/%Y') AS dates_fr FROM blog WHERE id ='{$_GET['blog']}'") or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$donnees = mysql_fetch_array($query);
?>
<div class="poste">
<?php echo $donnees['pseudo'].' a publié : '.$donnees['dates_fr'].$donnees['heures'].'<br/>'. nl2br(htmlspecialchars($donnees['message'])).'<br/><br/>';?>
</div>
<?php
mysql_close();
?>
Je vous remercie beaucoup pour votre aide !
$query = mysql_query("SELECT id, pseudo, DATE_FORMAT(heure, ' à %Hh%i') AS heures, message, DATE_FORMAT(dates, 'le %d/%m/%Y') AS dates_fr FROM blog WHERE id ='{$_GET['blog']}'")
d'où le code en entier :
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('test');
$query = mysql_query("SELECT id, pseudo, DATE_FORMAT(heure, ' à %Hh%i') AS heures, message, DATE_FORMAT(dates, 'le %d/%m/%Y') AS dates_fr FROM blog WHERE id ='{$_GET['blog']}'") or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$donnees = mysql_fetch_array($query);
?>
<div class="poste">
<?php echo $donnees['pseudo'].' a publié : '.$donnees['dates_fr'].$donnees['heures'].'<br/>'. nl2br(htmlspecialchars($donnees['message'])).'<br/><br/>';?>
</div>
<?php
mysql_close();
?>
Je vous remercie beaucoup pour votre aide !