• 02 Mai 2024, 06:54:32


Auteur Sujet: question sur le mysql de G-sTyLeZzZ version R6  (Lu 2326 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
question sur le mysql de G-sTyLeZzZ version R6
« le: 15 Juillet 2011, 18:52:29 »
Bonjour je suis entrain de me familiariser avec le SQL de SAMP  :blink

voila je commence donc par verifier les fonction et j'integre donc un systeme de chat pour voir comment sa reagit

voici le code

public OnPlayerText(playerid, text[])
{
    new escape[128];
mysql_real_escape_string(text,escape);
new str[250];
format(str,250,"INSERT INTO `chat` (text) VALUES ('%s')",escape);
mysql_query(str);
return 1;
}

je sais que le format n'etait pas obligatoire mais c'est pas un code fini ^^

et voila mon bug -_-


en gros sa affiche ceci



en gros ce n'est pas dans l'ordre

Pour qu'elle raison ce n'est pas enregistrer dans l'ordre SVP ??
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Dark4ng3L

  • *
  • Bandit
  • Messages: 480
    • Voir le profil
    • DecaWeb.ch - L'informatique comme vous ne l'avez jamais vu!
Re : question sur le mysql de G-sTyLeZzZ version R6
« Réponse #1 le: 15 Juillet 2011, 19:01:30 »
elle es structurée comment ta base ? le problème vien pas de ton script pawn, mais de ton code PHP ou de ta base
Cordialement Dark4ng3L aussi connu sous le nom de Mathias_Martinez, Matthias_Angelo et lugia !




Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : question sur le mysql de G-sTyLeZzZ version R6
« Réponse #2 le: 15 Juillet 2011, 19:02:59 »
Peut-être devrai tu réceptionner les données dans l'ordre avant, à l'époque où je touchais le mysql je me souviens qu'il y a un code de ce genre ORDER BY DESC et tu fais ça selon l'id du message ;)



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Dark4ng3L

  • *
  • Bandit
  • Messages: 480
    • Voir le profil
    • DecaWeb.ch - L'informatique comme vous ne l'avez jamais vu!
Re : question sur le mysql de G-sTyLeZzZ version R6
« Réponse #3 le: 15 Juillet 2011, 19:06:02 »
ouaip enfait j'ai mal lu son screen  j'ai cru que les ID ne correspondait pas à la date.
Donc oui tu as raison Ssk, il doit mettre dans sa requette pour récupérer les données sur ton site, tu doit mettre à la fin de celle-ci ORDER BY `id` [ASC pour que ca sois croissant - DESC pour que ca sois décroissant]

a+
Cordialement Dark4ng3L aussi connu sous le nom de Mathias_Martinez, Matthias_Angelo et lugia !




Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : question sur le mysql de G-sTyLeZzZ version R6
« Réponse #4 le: 15 Juillet 2011, 19:06:52 »
voila comment est structurer la base

$sql = "CREATE TABLE `sqlsftdm`.`chat` (`ID` INT NULL AUTO_INCREMENT PRIMARY KEY, `text` MEDIUMTEXT NOT NULL, `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP) ENGINE = MyISAM;";
Je fais plus simple je les recupere dans l'ordre inscrit du mysql ceci fonctionne tres bien en temps normale


mais meme sa ne devrais pas faire cela dans le PMA

pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Dark4ng3L

  • *
  • Bandit
  • Messages: 480
    • Voir le profil
    • DecaWeb.ch - L'informatique comme vous ne l'avez jamais vu!
Re : question sur le mysql de G-sTyLeZzZ version R6
« Réponse #5 le: 15 Juillet 2011, 19:09:33 »
Cristab il te suffit de mettre ORDER by `id` ASC à la fin de la requette SQL qui récupère tes données sous php
Cordialement Dark4ng3L aussi connu sous le nom de Mathias_Martinez, Matthias_Angelo et lugia !




Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : question sur le mysql de G-sTyLeZzZ version R6
« Réponse #6 le: 15 Juillet 2011, 19:10:33 »
oui mais nan c'est le big bazard dans le PMA la j'aime pas sa du tout ^^ en php je fais la meme chose mais tout est bien a sa place la c'est une cata
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Gilux

  • *
  • Mafioso
  • GOOBY PLS
  • Messages: 2209
    • Voir le profil
Re : question sur le mysql de G-sTyLeZzZ version R6
« Réponse #7 le: 15 Juillet 2011, 20:09:09 »
Si tu utilises PDO pour ta page Web, tu fais $bdd->query('SELECT * FROM Chat ORDER BY ID DESC');

Tu ne pourras pas l'ordonner correctement dès l'écriture, sachant que les ID sont normalement pourvus de l'attribut auto_increment.

Tiens, je te passe le code de ce que j'avais fait l'autre jour :


<?php
try
{
    
// On se connecte à MySQL
    
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    
$bdd = new PDO('mysql:host=localhost;dbname=base''root''password'$pdo_options);
    
    
// On récupère tout le contenu de la table jeux_video
    
$reponse $bdd->query('SELECT * FROM chat ORDER BY ID DESC');
    
    
// On affiche chaque entrée une à une
    
while ($donnees $reponse->fetch())
    {
    
?>
        <strong><?php echo htmlspecialchars($donnees['Pseudo']); ?></strong> : <?php echo htmlspecialchars($donnees['Message']); ?><br />
    <?php
    
}
    
    
$reponse->closeCursor(); // Termine le traitement de la requête

}
catch(
Exception $e)
{
    
// En cas d'erreur précédemment, on affiche un message et on arrête tout
    
die('Erreur : '.$e->getMessage());
}


?>


++


EDIT : Si tu veux mettre la date dans le bon ordre :

<?php
try
{
    
// On se connecte à MySQL
    
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    
$bdd = new PDO('mysql:host=localhost;dbname=base''root''password'$pdo_options);
    
    
// On récupère tout le contenu de la table jeux_video
    
$reponse $bdd->query('SELECT ID,text, DAY(date) AS jour,MONTH(date) AS mois, YEAR(date) AS Annee, HOUR(date) AS heure, MINUTE(date) AS minute, SECOND(date) AS seconde FROM chat ORDER BY ID DESC');
    
    
// On affiche chaque entrée une à une
    
while ($donnees $reponse->fetch())
    {
    
?>
        <strong><?php echo htmlspecialchars($donnees['Pseudo']); ?></strong> : <?php echo htmlspecialchars($donnees['Message']); ?> - <?php echo '' $donnees['heure'] . ':' $donnees['minute'] . ':' $donnees['seconde'] . ' le ' $donnees['jour'] . '/' $donnees['mois'] . '/' $donnees['annee'] . ''?><br />
    <?php
    
}
    
    
$reponse->closeCursor(); // Termine le traitement de la requête

}
catch(
Exception $e)
{
    
// En cas d'erreur précédemment, on affiche un message et on arrête tout
    
die('Erreur : '.$e->getMessage());
}


?>



EDIT 2 : Je pense que c'est un problème avec Auto_increment à ID, est-ce que tu l'as mis ?
« Modifié: 15 Juillet 2011, 20:15:52 par Gilux »

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : question sur le mysql de G-sTyLeZzZ version R6
« Réponse #8 le: 15 Juillet 2011, 22:04:44 »
oui il y a bien l'auto-incrementation ^^

ce que je veut dire c'est que sa enregistre n'importe comment et sa c'est pas normal
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : question sur le mysql de G-sTyLeZzZ version R6
« Réponse #9 le: 16 Juillet 2011, 02:14:45 »
SELECT * FROM `chat` ORDER `id` BY DESC--

Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : question sur le mysql de G-sTyLeZzZ version R6
« Réponse #10 le: 16 Juillet 2011, 03:02:31 »
L'ordre de tes données sont rangées par défaut dans un ordre spécifique qui est géré par le moteur de ta base. Tu retrouveras cet ordre par défaut partout lorsque tu feras un simple select sans 'order' sur ta base. Et ce n'est pas dû à PHPMyAdmin, car lui utilises aussi un simple SELECT sans ORDER BY pour lister les données. (Tu peux les trier par ID en cliquant sur "ID")
Il n'y a pas à savoir comment, c'est juste une certaine forme d'optimisation, géré en interne par le SGBD.

Si tu veux les trier, comme l'ont dit les autres utilise ORDER BY dans ta requête.
« Modifié: 16 Juillet 2011, 03:46:34 par ApocKalipsS »

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : question sur le mysql de G-sTyLeZzZ version R6
« Réponse #11 le: 16 Juillet 2011, 10:24:52 »
yep sa je sais ^^ vous me l'apprenner pas mais comment expliquer vous que l'id 7 est ecrit avant l'id 6 ma vrais question est la enfaite je peu faire le meme script en php il ne me feras pas ce bug
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : Re : question sur le mysql de G-sTyLeZzZ version R6
« Réponse #12 le: 16 Juillet 2011, 11:24:13 »
L'ordre de tes données sont rangées par défaut dans un ordre spécifique qui est géré par le moteur de ta base. Tu retrouveras cet ordre par défaut partout lorsque tu feras un simple select sans 'order' sur ta base. Et ce n'est pas dû à PHPMyAdmin, car lui utilises aussi un simple SELECT sans ORDER BY pour lister les données. (Tu peux les trier par ID en cliquant sur "ID")
Il n'y a pas à savoir comment, c'est juste une certaine forme d'optimisation, géré en interne par le SGBD.

Si tu veux les trier, comme l'ont dit les autres utilise ORDER BY dans ta requête.

La réponse est là ;)

Sinon, si tu veux plus d'infos : http://www.developpez.net/forums/d1101427/bases-donnees/mysql/administration/valeurs-non-rangees-defaut-index/
Comme le dit "mydb_server" dans le lien plus haut, tu peux utiliser sur ta table "ALTER TABLE table ORDER BY id;" pour les trier par défaut.

Et j'ai pas très bien compris la fin de ta phrase, tu n'arrives pas à le faire fonctionner en PHP ?
« Modifié: 16 Juillet 2011, 11:27:35 par ApocKalipsS »

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : question sur le mysql de G-sTyLeZzZ version R6
« Réponse #13 le: 16 Juillet 2011, 12:34:50 »
ah ben merci mais c'est bizard pas eu ce bug en php depuis deux ans ^^ donc sa me parraisser etrange tout de meme
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : question sur le mysql de G-sTyLeZzZ version R6
« Réponse #14 le: 16 Juillet 2011, 12:37:09 »
C'est pas un bug ^^