requete sql avec WHERE ... ??

Démarré par Gilga, 26 Décembre 2012, 20:46:03

« précédent - suivant »

Gilga

26 Décembre 2012, 20:46:03 Dernière édition: 26 Décembre 2012, 21:02:41 par Gilga
salut les gens et meilleurs voeux

j'ai une question concernant requete sql

j'ai une table avec 100 entrées +-
je fais des insert et cela s'ajoute par 100 avec un id autoindent

je parviens à afficher toutes les valeurs entrées ds la table


$sql = 'SELECT Coord, data1City, data1level, data1Joueur, data1Ally, data1Pts, data1PG, data2City, data2level, data2Joueur, data2Ally, data2Pts, data2PG, data3City, data3level, data3Joueur, data3Ally, data3Pts, data3PG, data4City, data4level, data4Joueur, data4Ally, data4Pts, data4PG, data5City, data5Joueur, data5Ally, data5Pts, data5PG, data6City, data6level, data6Joueur, data6Ally, data6Pts, data6PG, data7City, data7level, data7Joueur, data7Ally, data7Pts, data7PG, data8City, data8level, data8Joueur, data8Ally, data8Pts, data8PG, data9City, data9level, data9Joueur, data9Ally, data9Pts, data9PG, data10City, data10level, data10Joueur, data10Ally, data10Pts, data10PG, data11City, data11level, data11Joueur, data11Ally, data11Pts, data11PG, data12City, data12level, data12Joueur, data12Ally, data12Pts, data12PG, data13City, data13level, data13Joueur, data13Ally, data13Pts, data13PG, data14City, data14level, data14Joueur, data14Ally, data14Pts, data14PG, data15City, data15level, data15Joueur, data15Ally, data15Pts, data15PG, data16City, data16level, data16Joueur, data16Ally, data16Pts, data16PG, data17City, data17level, data17Joueur, data17Ally, data17Pts, data17PG FROM ika_iles';

par contre j'aimerai faire une sélection de ce que je veux afficher pour exclure les datas correspondant à une chaine de caractere (par ex: 'xyz' )

j'ai testé qlq trucs
j'ai essayé avec select * from table where (chaque entrées) datas1 <> 'xyz' OR datas2 <> 'xyz' OR datas3 <> 'xyz' OR datas4 <> 'xyz' ORetc... mais cela n'exclut pas l'affichage des datas ayant valeur 'xyz'

$sql = 'SELECT * FROM ika_iles where Coord <> "#EANF#" AND  data1City <> "#EANF#" AND  data1level <> "#EANF#" AND  data1Joueur <> "#EANF#" AND  data1Ally <> "#EANF#" AND  data1Pts <> "#EANF#" AND  data1PG <> "#EANF#" AND  data2City <> "#EANF#" AND  data2level <> "#EANF#" AND  data2Joueur <> "#EANF#" AND  data2Ally <> "#EANF#" AND  data2Pts <> "#EANF#" AND  data2PG <> "#EANF#" AND  data3City <> "#EANF#" AND  data3level <> "#EANF#" AND  data3Joueur <> "#EANF#" AND  data3Ally <> "#EANF#" AND  data3Pts <> "#EANF#" AND  data3PG <> "#EANF#" AND  data4City <> "#EANF#" Or  data4level <> "#EANF#" Or  data4Joueur <> "#EANF#" Or  data4Ally <> "#EANF#" Or  data4Pts <> "#EANF#" Or  data4PG <> "#EANF#" Or  data5City <> "#EANF#" Or  data5Joueur <> "#EANF#" Or  data5Ally <> "#EANF#" Or  data5Pts <> "#EANF#" Or  data5PG <> "#EANF#" Or  data6City <> "#EANF#" Or  data6level <> "#EANF#" Or  data6Joueur <> "#EANF#" Or  data6Ally <> "#EANF#" Or  data6Pts <> "#EANF#" Or  data6PG <> "#EANF#" Or  data7City <> "#EANF#" Or  data7level <> "#EANF#" Or  data7Joueur <> "#EANF#" Or  data7Ally <> "#EANF#" Or  data7Pts <> "#EANF#" Or  data7PG <> "#EANF#" Or  data8City <> "#EANF#" Or  data8level <> "#EANF#" Or  data8Joueur <> "#EANF#" Or  data8Ally <> "#EANF#" Or  data8Pts <> "#EANF#" Or  data8PG <> "#EANF#" Or  data9City <> "#EANF#" Or  data9level <> "#EANF#" Or  data9Joueur <> "#EANF#" Or  data9Ally <> "#EANF#" Or  data9Pts <> "#EANF#" Or  data9PG <> "#EANF#" Or  data10City <> "#EANF#" Or  data10level <> "#EANF#" Or  data10Joueur <> "#EANF#" Or  data10Ally <> "#EANF#" Or  data10Pts <> "#EANF#" Or  data10PG <> "#EANF#" Or  data11City <> "#EANF#" Or  data11level <> "#EANF#" Or  data11Joueur <> "#EANF#" Or  data11Ally <> "#EANF#" Or  data11Pts <> "#EANF#" Or  data11PG <> "#EANF#" Or  data12City <> "#EANF#" Or  data12level <> "#EANF#" Or  data12Joueur <> "#EANF#" Or  data12Ally <> "#EANF#" Or  data12Pts <> "#EANF#" Or  data12PG <> "#EANF#" Or  data13City <> "#EANF#" Or  data13level <> "#EANF#" Or  data13Joueur <> "#EANF#" Or  data13Ally <> "#EANF#" Or  data13Pts <> "#EANF#" Or  data13PG <> "#EANF#" Or  data14City <> "#EANF#" Or  data14level <> "#EANF#" Or  data14Joueur <> "#EANF#" Or  data14Ally <> "#EANF#" Or  data14Pts <> "#EANF#" Or  data14PG <> "#EANF#" Or  data15City <> "#EANF#" Or  data15level <> "#EANF#" Or  data15Joueur <> "#EANF#" Or  data15Ally <> "#EANF#" Or  data15Pts <> "#EANF#" Or  data15PG <> "#EANF#" Or  data16City <> "#EANF#" Or  data16level <> "#EANF#" Or  data16Joueur <> "#EANF#" Or  data16Ally <> "#EANF#" Or  data16Pts <> "#EANF#" Or  data16PG <> "#EANF#" Or  data17City <> "#EANF#" Or  data17level <> "#EANF#" Or  data17Joueur <> "#EANF#" Or  data17Ally <> "#EANF#" Or  data17Pts <> "#EANF#" Or  data17PG <> "#EANF#" ';

j'ai essayé avec des AND grave foireux  :P

j'ai essayé de me taper des tutos etc mais je ne trouve pas le moyen pour formuler cette requete de 100 datas



pourriez vous m'aider ?
merci de votre attention
Windows seven pro, Firefox 15.0.1
Dans ogame v5.1.x  univers quantum   VITESSE X2 
sur ogspy 3.1.0, sur wamp server (php 5.3.13, mysql 5.5.24) et sur OVH (php 5.3.16 )
script GM xtense Version: 2.4.8.1 et/ou barre xtense 2.4.8, mod xtense 2.4.2

machine

bien sur on va t aider ...

deja la table me parait trop grande ....
tu as des contraintes qui t obligent a rechercher toutes les données systématiquement ?


sinon, pour répondre a ta question :


SELECT * FROM ika_iles  WHERE datas1  NOT LIKE '%xyz%'


les '%' sont des jokers

si tu veux plus d infos :
http://sqlpro.developpez.com/cours/sqlaz/select/#L3.4
enjoy


Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/

Gilga

27 Décembre 2012, 12:43:02 #2 Dernière édition: 27 Décembre 2012, 13:15:26 par Gilga
Citation de: machine le 27 Décembre 2012, 08:17:12
bien sur on va t aider ...
deja la table me parait trop grande ....
tu as des contraintes qui t obligent a rechercher toutes les données systématiquement ?

merci
SELECT * FROM ika_iles  WHERE datas1  NOT LIKE '%xyz%'


mais à quoi correspond datas1 ?
est ce que je dois faire ce test/filtre WHERE pour chacune de mes datas ? (+ 100 )

sinon je ne suis pas certain de comprendre la question concernant la longueur requete et les contraintes ...
ben je veux afficher toutes les infos de tous les joueurs du "systeme solaire"
donc je fais la requete pour obtenir toutes les infos de cette coordonnée
Windows seven pro, Firefox 15.0.1
Dans ogame v5.1.x  univers quantum   VITESSE X2 
sur ogspy 3.1.0, sur wamp server (php 5.3.13, mysql 5.5.24) et sur OVH (php 5.3.16 )
script GM xtense Version: 2.4.8.1 et/ou barre xtense 2.4.8, mod xtense 2.4.2

machine

ben du coup ca serait plus :

select * from ika_iles  where coord = 'xyz' ( ou <> si doit etre different de )

ou si xyz ne correspond pas integralement  aux champs

select * from ika_iles  where coord like 'xyz' ( ou not like en fn de ce que tu veux )


( il est préférable de nommer tous les champs que tu utiliseras ( a la place de * ))

pour la longeur, pas bien grave je me demandais juste s il y avait pas mieux a faire ...


sinon :

est ce que je dois faire ce test/filtre WHERE pour chacune de mes datas ? (+ 100 )

ben ca depend de ton filtre, puisque la c par rapport au coord, juste coord devraéit de donner les informations

en decorticant tu as :

SELECT * FROM ika_iles  WHERE datas1  NOT LIKE '%xyz%'

qui donne

SELECT => on selectionne
* => tous les champs
from ika_iles => de la table ika_ile
where => qui correspondent a
datas1 => la valeur datas1
NOT LIKE=> qui n 'est pas resemblant a '
%xyz%' => [joker]xzy[joker]   ======> lsdghzoerighxzye'fzfzr  correspondra a cette condition par exemple

Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/

Gilga

pour l'utilisation du *   effectivement j'utilise chaque nom de chps de data comme je le montrai tête de topic

j'explique un peu mieux (enfin je vais essayer)

voici ma table elle est donc classée par id correspondant à une coordonnée et url
le reste sont des infos pour les 17 joueurs donc 17 x nom ville / niv / joueur
etc comme vue galaxie

id, Coord, Url, data1City, data1level, data1Joueur, data1Ally, data1Pts, data1PG, data2City, data2level, data2Joueur, data2Ally, data2Pts, data2PG, data3City, data3level, data3Joueur, data3Ally, data3Pts, data3PG, data4City, data4level, data4Joueur, data4Ally, data4Pts, data4PG, data5City, data5Joueur, data5Ally, data5Pts, data5PG, data6City, data6level, data6Joueur, data6Ally, data6Pts, data6PG, data7City, data7level, data7Joueur, data7Ally, data7Pts, data7PG, data8City, data8level, data8Joueur, data8Ally, data8Pts, data8PG, data9City, data9level, data9Joueur, data9Ally, data9Pts, data9PG, data10City, data10level, data10Joueur, data10Ally, data10Pts, data10PG, data11City, data11level, data11Joueur, data11Ally, data11Pts, data11PG, data12City, data12level, data12Joueur, data12Ally, data12Pts, data12PG, data13City, data13level, data13Joueur, data13Ally, data13Pts, data13PG, data14City, data14level, data14Joueur, data14Ally, data14Pts, data14PG, data15City, data15level, data15Joueur, data15Ally, data15Pts, data15PG, data16City, data16level, data16Joueur, data16Ally, data16Pts, data16PG, data17City, data17level, data17Joueur, data17Ally, data17Pts, data17PG

donc imaginons que la position 10 soit vide, et bien je me retrouve ds la base de donnée avec une valeur pour "non attribué/vide" =   'xyz'  qui est entré ds la base par defaut d'info

donc je veux afficher toutes les infos systeme solaire sauf les infos de la position 10 vide qui a ces infos 'xyz'  !

si je reprends ta proposition de code
je ne vois pas comment mettre en oeuvre le tri WHERE  NOT LIKE pour chacune de mes datas
Windows seven pro, Firefox 15.0.1
Dans ogame v5.1.x  univers quantum   VITESSE X2 
sur ogspy 3.1.0, sur wamp server (php 5.3.13, mysql 5.5.24) et sur OVH (php 5.3.16 )
script GM xtense Version: 2.4.8.1 et/ou barre xtense 2.4.8, mod xtense 2.4.2

machine

si je comprends bien

une ligne de ta table correspond un peu a un systeme solaire ... dt regroupe tous les joueurs sur une ligne ..

du coup pas possible de ne récupérer que ce qui existe ( a cause de la structure de la table )

il te faut passer par un traitement php

tu fais le select * from ta_table where coord = 'xyz'

tu envois le resultat de ta requete dans une variable ( $row par exemple )

et tu rentre le tout genre
$systemes[] = array( $row['id'] , $row['Coord'] , $row['Url'] ,  $row['data1City'] , etc jusqu 'a , $row['data1PG'] );
$systemes[] = array( $row['id'] , $row['Coord'] , $row['Url'] , $ row['data2City'] , etc jusqu 'a , $row['data2PG'] );
etc etc

tu feras ensuite un foreach

genre
foreach ( $systemes as $rows ){
if ( rows['data2City'] != '' )
{
//la tu affiches
echo 'ce joueur existe <br />';

}


}

ton probleme vient de la table

elle aurait pu se faire autrement genre

id, Coord, Url,row, dataCity, datalevel, dataJoueur, dataAlly, dataPts, dataPG

la en une requete tu aurais pu obtenir ce que tu voulais ...










Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/

Gilga

oui, t'as raison, c'est à cause de la structure de la table que j'ai créé.

mais bon c'est parce que j'ai les infos en tooltip ou popup de chaque joueur que je dois ouvrir un par un
donc j'ai fais un formulaire pour envoyer toute un syst solaire à la fois qd j'ai fait le tour de tous les joueurs
merci pour conseils, je m'en vais gratter du code pour voir si je solutionne

mais faudrait peut etre que je fasse un systeme de liaison php vers une autre table pour avoir les infos par ville et non par system solaire
Windows seven pro, Firefox 15.0.1
Dans ogame v5.1.x  univers quantum   VITESSE X2 
sur ogspy 3.1.0, sur wamp server (php 5.3.13, mysql 5.5.24) et sur OVH (php 5.3.16 )
script GM xtense Version: 2.4.8.1 et/ou barre xtense 2.4.8, mod xtense 2.4.2

machine

Citation de: Gilga le 27 Décembre 2012, 14:44:39


mais faudrait peut etre que je fasse un systeme de liaison php vers une autre table pour avoir les infos par ville et non par system solaire

je pense que ca serait une bonne chose ...
ca va élargir tes possibilités ...


apres tout depend de ce que tu veux

Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/