PHP, besoin d'un petit cout de pouce

Discussion dans 'Web, design' créé par DeScH, 1 Avril 2007.

Statut de la discussion:
Fermée.
  1. Offline
    guslinux Gamerz'ien
    Je préfère quand meme taper la requete en SQL :p
    guslinux, 3 Avril 2007
    #21
  2. Offline
    whatever42 ex membre
    tes pratiques sado-masochistes ne m'intéressent pas :p
    whatever42, 3 Avril 2007
    #22
  3. Offline
    zoheir cvm.mangaleet()
    Si tu préfères perdre du temps :cool:
    zoheir, 3 Avril 2007
    #23
  4. Offline
    guslinux Gamerz'ien
    disons juste que quand je vois passer la requete en SQL je la comprend ... ici en RoR je comprend moins ...

    De plus quand tu dois définir un DATE_FORMAT, ou utiliser tout autre fonction MySQL ca marche comment ??
    guslinux, 3 Avril 2007
    #24
  5. Offline
    Soulsight Touriste
    héhé pour ma part j'attends de le voir éprouver sur de vrais gros projets avant de me lancer uniquement dedans ...

    mais j'avoues que je suis bien tenté des fois quand je vois des requêtes avec des sous requêtes multiples et des conditions parfois space ...

    si un de vous ici a codé un petit projet / moyen projet avec RoR de a à Z ca serai sympa de linker !
    Soulsight, 3 Avril 2007
    #25
  6. Offline
    guslinux Gamerz'ien
    Moi j'attend mon live avant de m'y mettre serieusement ... mais bon actuellement j'ai un projet en ASM, un en PHP/AJAX, un en VHDL et un en VB ... alors apprendre RoR c'est pas le moment :beuh:
    guslinux, 3 Avril 2007
    #26
  7. Offline
    whatever42 ex membre
    Les date sont transformées en objets Date et les datetime en objet Time, après tu fais toutes les manipulations que tu veux dessus, y'a même des trucs sympa comme "madate => 1.week.ago" pour voir si la date est dans la dernière semaine ou bien des "madate - 6.months" pour calculer la date 6 mois avant etc ...
    la référence de l'API de base pour Time est là : http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Numeric/Time.html

    C'est l'exemple de "Agile Web Dev with Rails", la plupart des concepts y sont abordés
    http://www.pragmaticprogrammer.com/titles/rails/code.html

    Et non, rassurez-vous, faut pas taper tout le code, lisez un peu de doc sur les bases de Rails, vous verrez que 90% du code contenu dans l'archive est généré automatiquement.

    Sinon j'ai bien un gros truc codé de a à z, mais mon 'client' serait pas d'accord je pense ;)
    whatever42, 3 Avril 2007
    #27
  8. Offline
    DeScH AstaLaVista
    J'ai une petite question encore.

    Je voudrai sélectionner la news précédente et suivante dans ma table.

    Je pourais faire $id = $id +1 ou -1... mais le prob c'est qu'il y a parfois l'id qui passe de 103 a 109 donc cette formule ne sait pas récupérer la news.

    Existe-t-til un autre moyen?
    DeScH, 5 Avril 2007
    #28
  9. Offline
    Xou I ♥ rien
    C'est vrai que le Ruby parait bien plus simple d'un coup en voyant tout ça.
    Xou, 6 Avril 2007
    #29
  10. Offline
    DaBeast Elite
    select a.id,
    b.titre_jeu
    from table_avec_lesnews a,
    table_jeu b

    where a.id = b.titre_jeuid
    DaBeast, 6 Avril 2007
    #30
  11. Offline
    DeScH AstaLaVista
    Personne pour ceci?
    DeScH, 7 Avril 2007
    #31
  12. Offline
    guslinux Gamerz'ien
    Alors là on peut faire compliqué ou faire simple ... pour la solution compliquée voici :

    Code:
    SELECT * FROM News WHERE id=(SELECT id FROM News WHERE id<$id ORDER BY id DESC LIMIT 1) OR id>=$id ORDER BY id DESC LIMIT 3
    Si je me suis pas trompé, la requete va te renvoyer 3 enregistrements :
    $id-"1"
    $id
    $id+"1"
    guslinux, 8 Avril 2007
    #32
  13. Offline
    Calvin80 Elite
    yep.
    Ou alors
    Code:
    SELECT id FROM News WHERE id <=max($id,(SELECT min(id)  FROM News WHERE id>$id)) ORDER BY id DESC LIMIT 3
    qui devrait donner la meme chose mais en sens inverse... (suffut d'inverser le min en max, le < en > et le DESC en ASC pour avoir le meme ordre)
    Calvin80, 8 Avril 2007
    #33
  14. Offline
    DeScH AstaLaVista
    Merci. Et comment faire pour dégager la précédente, la news actuelle et la suivante alors? (elles seront placées à des endroits différents de la page).

    Comme ceci:
    [IMG]
    DeScH, 8 Avril 2007
    #34
  15. Offline
    guslinux Gamerz'ien
    Les records sont dans l'ordre des id

    $result = mysql_query('');
    $news_avant = mysql_fetch_assoc($result);
    $news_courante = mysql_fetch_assoc($result);
    $news_apres = mysql_fetch_assoc($result);
    guslinux, 8 Avril 2007
    #35
  16. Offline
    DeScH AstaLaVista
    oui mais je ne comprends pas. Pour avoir les 3 groupés, on fait un while mais séparément, on ne peut pas faire 3x mysql_fetch_array? ca marche pour un des résultats mais les autres non
    DeScH, 8 Avril 2007
    #36
  17. Offline
    guslinux Gamerz'ien
    Tu parles surement d'un code comme celui ci :

    Code:
    $result = mysql_query('');
    while($line = mysql_fetch_assoc($result)){
    // traitement de $line
    }
    Le "while($line = mysql_fetch_assoc($result))" signifie : on boucle tant que le résultat de la fonction mysql_fetch_assoc() est non null. A chaque boucle on met le résultat dans $line.
    guslinux, 8 Avril 2007
    #37
  18. Offline
    DeScH AstaLaVista
    oui oui ca je sais, mais je ne veux pas faire comme ça justement.

    Tu m'as dit:

    $result = mysql_query('');
    $news_avant = mysql_fetch_assoc($result );
    $news_courante = mysql_fetch_assoc($result );
    $news_apres = mysql_fetch_assoc($result );

    Mais on ne peut pas traiter 3x la meme requete non? Je voudrais créer des variables différentes donc par exemple

    $news_avant['titre']
    puis
    $news_courante ['titre']
    et enfin
    $news_apres ['titre']
    DeScH, 8 Avril 2007
    #38
  19. Offline
    oNi- Elite
    Ce n'est pas sur la requête que tu fais tes traitements mais sur son résultat, qui contient 0 à plusieurs lignes.
    Chaque fois que tu fais un fetch sur $result tu obiens une nouvelle ligne (ou NULL).
    Tu dis avoir compris le principe du while, pourtant ta question laisse penser le contraire =] . Mettre le fetch dans la condition du while revient à faire 1 à plusieurs fetch consécutifs, donc ce que t'a "proposé" (en fait, expliqué) guslinux est correct.
    Et donc ce que tu demandes est tout à fait possible de cette manière, bien que "dangereux" vu que tu ne testes pas le NULL.

    Tu n'as qu'à procéder avec le while et, gràce à un test sur un compteur, tu remplis les variables adéquates. (attention aux cas particuliers : première et dernière news pour le traitement postérieurs des variables)
    oNi-, 8 Avril 2007
    #39
  20. Offline
    guslinux Gamerz'ien
    J'avais pas pensé à ca sur le coup :p On ne sait pas prévoir si on aura une news précédente ou une news suivante ... l'idéal serait donc d'avoir 3 requetes pour chaque news ainsi pas d'équivoque ...
    guslinux, 8 Avril 2007
    #40
Statut de la discussion:
Fermée.