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
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
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
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
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
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 ...
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
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