Requête SQL

Répondre
laura
le 12/10/2009 à 12:55
laura
En lisant ton code je vois que tu n'as pas besoin d'autant de requêtes vers la base de données. Une seule requête (SELECT). Tu tests si celle ci retourne un résultat == 0 si cela est le cas tu fais un INSERT sinon tu tries avec php.

Un autre conseil évite le * dans une requête, c'est peu optimisé. Il est préférable de mettre le nom des champs que tu veux chercher.

C'est juste une piste en lisant ton code à toi de voir la meilleure des méthodes pour toi smiley
Des étoiles dans les yeux, le ciel pour m'évader
coringan
le 12/10/2009 à 14:12
coringan
Laura tu as raison sur tout la ligne (un seul select, pas d'étoile et le tri php), c'est vraiment ce dont j'avais besoin et je me le disais déjà lorsque j’ai d’abord fait des maladroits if qui n’ont pas fonctionné.
Peux-tu me donner une piste sur le tri si ce n’est trop te demander ? Si non je ferai ma petite recherche dès mon retour ce soir.
Merci.
Je fais ce qui me plaît, et ce que je fais me plaît !
laura
le 12/10/2009 à 14:28
laura
Bon je vais essayer de te donner des pistes ^^
Déjà change ta requête. Retires le count pour récupérer les champs dont tu vas avoir besoin pour le tri.
Ensuite change :
<?php
$data = mysql_fetch_array($req);
?>


par

<?php
if ($req)
{
$row=array();
while($row = mysql_fetch_array($req,MYSQL_ASSOC))
{
$data[] = $row;
}
mysql_free_result($req);
}
?>

Tu crées un tableau représentatif de tes piments.

Ensuite tu tests simplement

<?php
if(empty($data))
{
//insert
}
else
{
foreach($data as $key=>$value)
{
//tu parcours tes résultats et tu inscrimentes ton tableau selon le cas
}
}
?>
Des étoiles dans les yeux, le ciel pour m'évader
coringan
le 12/10/2009 à 14:33
coringan
Merci beaucoup.
Je reviens là-dessus plus tard.
Je fais ce qui me plaît, et ce que je fais me plaît !
coringan
le 13/10/2009 à 02:54
coringan
C’est déjà plus clair et concis.
Je n’ai même pas eu besoin d’incrémenter quoi que ce soit, puisque le même pseudo ou courriel ne peut être présent plus d’une fois dans la DB (dans ce cas ma formule ne passe pas partout).
Après le foreach, il ne me restait plus qu’à faire des comparaisons entre indices, champs et variables.
Merci une fois de plus Laura.
Je fais ce qui me plaît, et ce que je fais me plaît !
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours