Sammuel

  • Nombre de sujets
    26
  • Nombre de messages
    114
  • Nombre de commentaires
    1
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

Sammuel
le 06/04/2011 à 17:00
limit dans une sous requete ?
C'est ce qu'on appelle une limite de mysql :X

Je vais devoir contourner la chose alors, du genre, ajouter un champ 'selection' à ma table et faire un script qui ira sélectionner aléatoirement 5 photos de chaque recette.
Et je n'aurais plus qu'à les sélectionner.

Je n'aime pas ce genre de complication !
Sammuel
le 31/03/2011 à 15:44
limit dans une sous requete ?
Salut,

Cela fait un moment que je n'arrive pas à résoudre cette requête... Je ne sais pas d'ailleurs, si c'est la meilleure méthode à utiliser.

Pour résumé, sur une même page, j'aimerais lister plusieurs noms de recettes, avec en dessous de chaque nom, une liste de 5 photos (maximum). Sachant qu'une recette peut avoir un nombre X de photos.
Une recette peut avoir 20 photos, comme 5, 7, 10, 100, 1000 !

Je parle de recettes de cuisine pour simplifer mon exemple :)


Base de données :

RECETTE
recette_id
nom
description

PHOTO
id
recette_id


Résultats retournés

**********
Recette 1
photo 1
photo 2
photo 3
photo 4
**********
Recette 2
photo 5
photo 6
photo 7
photo 8
photo 9
photo 10
photo 11
photo 12
**********
Recette 3
photo 1
**********
Recette 4
photo 1
photo 2
photo 3
photo 4
photo 5
photo 6
**********


Résultats que j'aimerais obtenir

**********
Recette 1
photo 1
photo 2
photo 3
photo 4
**********
Recette 2
photo 5
photo 6
photo 7
photo 8
photo 9
**********
Recette 3
photo 1
**********
Recette 4
photo 1
photo 2
photo 3
photo 4
photo 5
**********


La requête de base est :

SELECT recette.recette_id,recette.nom,recette.description,photo.id FROM recette
LEFT JOIN photo ON photo.recette_id = recette.recette_id


=> mais elle m'affiche TOUTES les recettes avec TOUTES les photos de chaque recette. Ce qui est normal, vu qu'il n'y a pas de limite. Et je crois que l'on ne peut pas faire de "limit" dans un JOIN ?

J'ai tenté quelque chose du genre :

SELECT recette.recette_id,recette.nom,recette.description,p.id
FROM recette
LEFT JOIN (SELECT id,recette_id FROM photo WHERE xxxxxxxxxx) p ON recette.recette_id = p.recette_id
WHERE xxxxxxxxxxxxxxxxxxxxxxxxxxxxx


=> mais cela m'affiche TOUTES les recettes avec TOUTES les photos de chaque recette.
=> J'ai essayé en ajoutant un "limit" dans le SELECT du LEFT JOIN, mais cela ne fait rien :p

Auriez vous une solution pour limiter le nombre de résultat d'une "sous requête" ?
=> Une fois la requête effectuée, je pourrais très bien limiter le nombre d'images à afficher à 5, mais je ne pense pas que ce soit la meilleure solution... surtout si les recettes ont plus d'une centaine de photo chacune :p

Merki.
Sammuel
le 20/12/2010 à 18:27
Tester (si résultat) boucle mysql while
Je me demandais juste s'il n'y avait pas une autre solution, technique PHP, c'est tout :)

Mais à y re-penser, il ne doit pas avoir 36 autres solutions.
Sammuel
le 20/12/2010 à 17:29
Tester (si résultat) boucle mysql while
Salut,

J'aimerais optimiser une tite chose au niveau du while qui retourne les résultats d'une requête mysql.

Le but : si aucun enregistrement mysql n'est retourné, stopper l'affichage de la page et rediriger vers une page 404 par exemple.

J'aimerais optimiser ce code :
$req = mysql_query("REQUETE");

[b]if(mysql_num_rows($req)>0){[/b]
while($row = mysql_fetch_assoc($req)){
$info = array(blaaaaaaaaaaaaaaaaa);
}
}else{
exit();
}


Pour tester si au moins un enregistrement est retourné, je suis 'obligé' de faire un 'mysql_num_rows($req)' et j'aimerais savoir si vous auriez une astuce pour éviter ce genre de chose.

Cela fonctionne, mais peut être qu'il y a mieux comme solution.

Merci !
Sammuel
le 11/08/2009 à 19:46
Phpmyadmin / Mysql => conversion UTF8 impossible
J'ai fait d'autres tests et maintenant mes données sont affichées avec des é, des à, des è, en clair dans Phpmyadmin. Et tout s'affiche correctement sur ma page.

J'ai pris exemple sur le contenu d'un forum de type Phpbb qui tourne en UTF8... et ses données, dans Phpmyadmin, sont affichées en "clair" aussi (avec des é, des à , etc...). Donc, j'ai aussi tenté le coup ^^

Par contre, j'ai été obligé d'utiliser :
mysql_query("SET NAMES 'utf8'");

... sinon, cela m'affiche des caractères pas jolies :p

J'aurais cru que mysql stockait des caractères en UTF8, mais apparemment non. A moins que je m'y prenne mal smiley
Sammuel
le 11/08/2009 à 12:08
Phpmyadmin / Mysql => conversion UTF8 impossible
Je pensais que Phpmyadmin pouvait encoder, directement, mon contenu brut en UTF8 ! Donc, il ne s'en occupe pas ? C'est ce que je cherche à savoir en fait.
Ce serait pratique ! car là, je suis obligé de prévoir "une zone d'administration" pour modifier/insérer certaines données dans Mysql.

Avant, quand j'utilisé l'ISO, j'avais l'habitude de faire certaines modifications via phpmyadmin... et j'aimerais bien continuer smiley

J'ai posé la question sur sourceforge pour avoir une réponse claire, nette et précise :p
Sammuel
le 11/08/2009 à 11:23
Phpmyadmin / Mysql => conversion UTF8 impossible
Vraiment bizarre... J'ai codé un formulaire tout simple pour insérer des données et tous les caractères accentués ont été encodés sans problème en UTF8. Même les "à". J'ai ça en BDD :
Depuis plusieurs semaines, les enquêteurs ont orienté leurs recherches autour du praticien personnel de Michael Jackson, Conrad Murray. Soupçonné d’avoir injecté une dose fatale d’un puissant anesthésique (NDLR le Propofol) à son patient, le Dr Murray risque gros.

C'est bien de l'UTF8 ? ^_^

Pour l'insertion, j'ai juste utilisé mysql_real_escape_string. Pas d'utf8_encode ou autre fonction du genre. Et, je n'utilise pas de :

mysql_query("SET NAMES 'utf8'")
ou
AddDefaultCharset UTF-8

Et l'affiche est bon avec un simple :
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Concernant Phpmyadmin, j'ai vu qu'il existait une version ONLY utf8. Peut être pour régler ce problème...
Sammuel
le 09/08/2009 à 22:46
Phpmyadmin / Mysql => conversion UTF8 impossible
Salut,

J'ai décidé de passer à l'UTF8, aussi, je rencontre quelques problèmes au niveau de l'encodage entre phpmyadmin et mysql.

J'utilise :
PHP 5.2
MYSQL 5.1
PHPMYADMIN 3.1

Quand j'ajoute des données (dans MYSQL) depuis un formulaire PHP que j'ai créé avec mes petites mains, les données sont bien insérées en UTF8 dans ma base de données. Et je n'utilise rien pour les encoder en UTF8... l'encodage fonctionne tout seul.

Par contre, si je souhaite ajouter des données depuis Phpmyadmin, dans cette même table, il insère les données brutes, sans les encodées en UTF8 !

Quand je parle de "données brute", c'est un texte de ce genre :
Etre averti par email lors d'une réponse à votre sujet

... avec des é, des à , etc...

Je suis donc obligé d'encoder moi même les données en UTF8 avant de les insérer directement dans Phpmyadmin smiley

Si j'utilise mon propre formulaire d'insertion de données, ça fonctionne. Si j'utilise phpmyadmin, ça ne fonctionne pas.

J'ai bo avoir tout retourné, mis tout en UTF8, phpmyadmin ne veut rien savoir ^_^

Je n'ai pas 36000 lignes à ajouter via phpmyadmin, mais ce serait quand même plus pratique s'il s'entendait bien avec son petit copain mysql :p

Sinon, j'ai remarqué qu'il y avait un "bug" avec les "à"... encore un mystère smiley

Avez vous rencontré ce genre de problème ? Si oui, comment procéder ?

Merci smiley
Sammuel
le 16/01/2009 à 16:13
Connexion BDD
Oki, donc je ne vais pas changer ma manière de faire !

Je vous ai posé la question car je suis tombé sur un article sur le net à ce sujet ^^ Et il n'était pas très explicite.
Sammuel
le 14/01/2009 à 13:11
Connexion BDD
Salut,

J'aimerais savoir s'il y a une réelle différence entre :

1 - Se connecter à la base de donnée en début de page, avant l'affichage des différents scripts PHP. En refermant la connexion à la BDD en fin de page.
2 - Se connecter/déconnecter de la base de données avant/après chaque requête MYSQL ?


1 - Exemple sur une même page PHP :

// CONNEXION A LA BASE DE DONNEES
// REQUETE 1
// REQUETE 2
// REQUETE 3
// FERMETURE DE LA CONNEXION



2 - Exemple sur une même page PHP :

// CONNEXION A LA BASE DE DONNEES
// REQUETE 1
// FERMETURE DE LA CONNEXION

// CONNEXION A LA BASE DE DONNEES
// REQUETE 2
// FERMETURE DE LA CONNEXION

// CONNEXION A LA BASE DE DONNEES
// REQUETE 3
// FERMETURE DE LA CONNEXION


Personnellement, j'essais de limiter et d'optimiser mes requêtes de façon à en avoir le moins possible. Mais des fois, on est obligé de faire 1 ou 2 requête en plus pour mettre à jour la base de données.

Donc, quelle est la meilleure méthode selon vous ? Je ne pense pas qu'il y ait une réelle différence ! mais bon... Je préfère vous demander !

Merci !
LoadingChargement en cours