04. januar 2004 - 19:37
Der er
30 kommentarer og 1 løsning
Sammenligne array med mysql database
Hey Jeg har et array som jeg gerne vill have sammenlignet med en række navne som er i en mysql database... Jeg går ikke ud fra et mysql kald pr. navn er specielt effektivt, så man ikke hente navnene fra databasen i et array og så sammenligne de 2 arrays? mvh Mads
Annonceindlæg fra Computerworld
04. januar 2004 - 19:38
#1
Kan du komme med et eksempel på hvad du mener?
04. januar 2004 - 19:57
#2
Er det noget ala følgende du søger? $query = mysql_query("SELECT * FROM table WHERE navn IN (".implode(",",$array_med_navne).")") or die(mysql_error());
04. januar 2004 - 20:04
#3
'navne' får mig til at tænke på at der skal '...' omkring, ahv ;)
04. januar 2004 - 20:08
#4
Hey ahv -> Kan godt være jeg spørger dumt, men hvad kommer $query så til at indeholde? mvh Mads
04. januar 2004 - 20:09
#5
Den kommer til at indeholde de navne som passer med navnene i arrayet, udskriv dem -> while ($row = mysql_fetch_array($query)) { echo $row["navn"]; }
04. januar 2004 - 20:09
#6
Den fx se sådan ud SELECT * FROM table WHERE navn IN ('Hans','Peter','Kurt')
04. januar 2004 - 20:13
#7
Ja selvfølgelig skal der '...' omkring :) $query = mysql_query("SELECT * FROM table WHERE navn IN ('".implode(",",$array_med_navne)."')") or die(mysql_error());
04. januar 2004 - 20:16
#8
Hey Får en "Unknown table 'peter' in where clause" - peter er det første navn i arrayet med navne... mvh Mads
04. januar 2004 - 20:18
#9
Det var fordi der ikke var singel-apostroffer rundt om som EJ korrekt rettede: $query = mysql_query("SELECT * FROM table WHERE navn IN ('".implode(",",$array_med_navne)."')") or die(mysql_error());
04. januar 2004 - 20:19
#10
ahv: det skal jo ikke være SELECT * FROM table WHERE navn IN ('Hans,Peter,Kurt') Hæng på kagehuset, vent lige til vi siger ok - så kan du prøve
04. januar 2004 - 20:20
#11
Hey igen Har sat single paranteser på - nu sker der intet... mvh Mads
04. januar 2004 - 20:22
#12
Hvordan ser hele din kode ud nu?
04. januar 2004 - 20:25
#13
Hey $query = mysql_query("SELECT * FROM base WHERE name IN ('".implode(",",$files)."')") or die(mysql_error()); while ($row = mysql_fetch_array($query)) { echo $row["name"]; }
04. januar 2004 - 20:27
#14
Sikker på der er nogen navne i array'et der passer med dem i tabellen?
04. januar 2004 - 20:30
#15
vil du sætte '...'-erne rigtig på eller skal jeg, ahv?
04. januar 2004 - 20:38
#16
Hey Har sat dem på - er lige igang med at checke input... Ser ikke ud til der kommer forbindelse til databasen - har nok lavet en spasserfejl et sted :-)
04. januar 2004 - 20:41
#17
Du skal ikke lede efter fejl så længe du har: ....WHERE name IN ('".implode(",",$files)."')") Der er fejlen - vi skal bare finde ud af hvem der ordner det ;)
04. januar 2004 - 20:52
#18
Hey Så forstår jeg bedre! Hvor skal de da stå så? Syns jeg har prøvet alle steder... mvh Mads
04. januar 2004 - 20:56
#19
$query = mysql_query("SELECT * FROM base WHERE name IN ('".implode("','",$files)."')") or die(mysql_error());
04. januar 2004 - 20:58
#20
Ahh - sådan! Takker begge to! erikjacobsen - smider du ikke lige et svar så du også kan få en sjat point? mvh Mads
04. januar 2004 - 21:00
#21
Nej, tak, jeg har ikke lavet noget konstruktivt - kun brokket mig ;)
04. januar 2004 - 21:01
#22
Hov - lige hurtigt - hvis jeg ville have den til at skrive de navne der ikke findes både i databasen og i arrayet, men kun dem som er i arrayet - hint? mvh Mads
04. januar 2004 - 21:01
#23
hehe Fair nok!
04. januar 2004 - 21:03
#24
Jeg forstår ikke hvad du mener. Et eksempel?
04. januar 2004 - 21:06
#25
Som det er nu er der 4 navne i et array hvoraf 2 af dem pgså er i en database, og takket være ahv smider php nu de 2 som findes i både databasen ud til brugeren... Hvis jeg nu vil have de 2 som ikke er i databasen ud i stedet... mvh Mads
04. januar 2004 - 21:10
#26
Jeg har ikke lige noget forslag.
04. januar 2004 - 21:11
#27
K, men tak alligevel - du får lige nogle point!!
04. januar 2004 - 21:15
#28
Skitse: <? $a[]='Hans'; $a[]='Peter'; $a[]='Kurt'; $a[]='Julemanden'; for ($i=0;$i<count($a);$i++) { $b[$a[$i]]=1; } // vi simulerer select * from tabel where navn in ('Hans','Peter','Kurt','Julemanden') // Kun 'Hans' og 'Kurt' er i databasen $res[]='Hans'; $res[]='Kurt'; for ($i=0;$i<count($res);$i++) { $navnfradatabasen=$res[$i]; // simuler udtræk! unset($b[$navnfradatabasen]); } // dem der er i arrayet, men ikke i databasen udskrives foreach ($b as $key=>$val) { print "$key\n"; } ?>
04. januar 2004 - 21:32
#29
Hey Takker - så skulle du jo have haft point alligevel :-)
04. januar 2004 - 21:35
#30
det der? Det var bare kattekillingerne der dansede rundt på tastaturet da jeg vendte ryggen til. Tag dig ikke af det ;)
04. januar 2004 - 21:43
#31
hehe Takker alligevel! mvh Mads
Vi tilbyder markedets bedste kurser inden for webudvikling