php variable
Op het volgende blad geeft hij netjes 0 en 1 op de keuze weer dit werkt.
vervolgens als ik dan de if zou gebruiken de eerst php hieronder begrijp de php dit.
Code (php)
1
2
3
2
3
<?php>
// if ($keuze_1==0 && $keuze_2==1 && $keuze_3==0 && keuze_4==0){ $keuze_sub="WHERE ".$keuze_cartnr;}
?>
// if ($keuze_1==0 && $keuze_2==1 && $keuze_3==0 && keuze_4==0){ $keuze_sub="WHERE ".$keuze_cartnr;}
?>
Echter om het wat gemakkelijker te maken en niet allemaal if te hoeven maken heb ik dit aangepast
naar het volgende. tijdelijk heb ik een echo bij gezet en daar kan ik netjes zien dat hij de waarde
in de keuze_sub plaatst.
Echter komt toch de num nu met een error en doet niks.
Zie ik iets over het hoofd wat ik verkeerd doe.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php>
$keuze_name=""; / zekerheid naar leeg
$keuze_cartnr=""; / zekerheid naar leeg
$keuze_sound=""; / zekerheid naar leeg
$keuze_description=""; / zekerheid naar leeg
// als keuze gelijk is aan 1 geef variable de waarde.
if ($keuze_1==1) {$keuze_name = " `name` LIKE '%".$namec."%' "; }// 1
if ($keuze_2==1) {$keuze_cartnr = " `cartnr` LIKE '%".$namec."%' "; }// 2
if ($keuze_3==1) {$keuze_sound = " `sound` LIKE '%".$namec."%' "; }// 3
if ($keuze_4==1) {$keuze_description = " `description` LIKE '%".$namec."%' "; }// 4
// zet variable in de keuze_sub
$keuze_sub="WHERE ".$keuze_name."||".$keuze_cartnr."||".$keuze_sound."||".$keuze_description.'"';
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
// echo lijn geeft netjes alles weer waarvoor ik de keuze heb gemaakt.
// echo "<BR><BR><BR> keuze: ".$keuze_sub;
// voeg hier de keuze_sub lijn toe aan query
$query ="SELECT * FROM `cartridges` ".$keuze_sub;
$result=mysql_query($query);
// hier gaat hij fout, vermoedelijk omdat ik toch iets verkeerd heb staan.
$num=mysql_numrows($result);
?>
$keuze_name=""; / zekerheid naar leeg
$keuze_cartnr=""; / zekerheid naar leeg
$keuze_sound=""; / zekerheid naar leeg
$keuze_description=""; / zekerheid naar leeg
// als keuze gelijk is aan 1 geef variable de waarde.
if ($keuze_1==1) {$keuze_name = " `name` LIKE '%".$namec."%' "; }// 1
if ($keuze_2==1) {$keuze_cartnr = " `cartnr` LIKE '%".$namec."%' "; }// 2
if ($keuze_3==1) {$keuze_sound = " `sound` LIKE '%".$namec."%' "; }// 3
if ($keuze_4==1) {$keuze_description = " `description` LIKE '%".$namec."%' "; }// 4
// zet variable in de keuze_sub
$keuze_sub="WHERE ".$keuze_name."||".$keuze_cartnr."||".$keuze_sound."||".$keuze_description.'"';
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
// echo lijn geeft netjes alles weer waarvoor ik de keuze heb gemaakt.
// echo "<BR><BR><BR> keuze: ".$keuze_sub;
// voeg hier de keuze_sub lijn toe aan query
$query ="SELECT * FROM `cartridges` ".$keuze_sub;
$result=mysql_query($query);
// hier gaat hij fout, vermoedelijk omdat ik toch iets verkeerd heb staan.
$num=mysql_numrows($result);
?>
Toevoeging op 14/09/2013 15:03:35:
Ik heb het al opgelost
1 veld stond verkeerd, en is niet bekend in de sql.
Gewijzigd op 14/09/2013 14:43:51 door Space gremlin
Nu komt er twee keer || te staan als er een statement mist. dat lossen we zo op:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
$keuze_1 = $keuze_2 = $keuze_3 = $keuze_4 = 0;
$namec = 'test';
$keuze_2 = 0;
// we weten niet zeker of er keuzes gemaakt zijn dus standaard is ie leeg
$keuze_sub = '';
$keuze_name=""; // zekerheid naar leeg
$keuze_cartnr=""; // zekerheid naar leeg
$keuze_sound=""; // zekerheid naar leeg
$keuze_description=""; // zekerheid naar leeg
// we gebruiken een array voor de verschillende keuzes want dan kunnen we straks de functie implode gebruiken.
$keuze = array();
// als keuze gelijk is aan 1 geef variable de waarde.
if ($keuze_1==1) {$keuze['name'] = " `name` LIKE '%".$namec."%' "; }// 1
if ($keuze_2==1) {$keuze['cartnr'] = " `cartnr` LIKE '%".$namec."%' "; }// 2
if ($keuze_3==1) {$keuze['sound'] = " `sound` LIKE '%".$namec."%' "; }// 3
if ($keuze_4==1) {$keuze['description'] = " `description` LIKE '%".$namec."%' "; }// 4
// alleen als er keuzes gemaakt zijn
if(count($keuze))
{
// plak alle keuzes uit de array achter elkaar en zet er ' || ' tussen.
$keuze_sub = ' WHERE ' . implode(' || ', $keuze);
}
$query ="SELECT * FROM `cartridges`".$keuze_sub;
echo $query;
?>
$keuze_1 = $keuze_2 = $keuze_3 = $keuze_4 = 0;
$namec = 'test';
$keuze_2 = 0;
// we weten niet zeker of er keuzes gemaakt zijn dus standaard is ie leeg
$keuze_sub = '';
$keuze_name=""; // zekerheid naar leeg
$keuze_cartnr=""; // zekerheid naar leeg
$keuze_sound=""; // zekerheid naar leeg
$keuze_description=""; // zekerheid naar leeg
// we gebruiken een array voor de verschillende keuzes want dan kunnen we straks de functie implode gebruiken.
$keuze = array();
// als keuze gelijk is aan 1 geef variable de waarde.
if ($keuze_1==1) {$keuze['name'] = " `name` LIKE '%".$namec."%' "; }// 1
if ($keuze_2==1) {$keuze['cartnr'] = " `cartnr` LIKE '%".$namec."%' "; }// 2
if ($keuze_3==1) {$keuze['sound'] = " `sound` LIKE '%".$namec."%' "; }// 3
if ($keuze_4==1) {$keuze['description'] = " `description` LIKE '%".$namec."%' "; }// 4
// alleen als er keuzes gemaakt zijn
if(count($keuze))
{
// plak alle keuzes uit de array achter elkaar en zet er ' || ' tussen.
$keuze_sub = ' WHERE ' . implode(' || ', $keuze);
}
$query ="SELECT * FROM `cartridges`".$keuze_sub;
echo $query;
?>
Echter hierna kwam inderdaad het probleem van de ||
Ik was daar al mee bezig.
Ik zie dat jij daar al een korte oplossing voor hebt geplaatst dus ik ga even kijken wat dat doet voor mij
Bedankt.
wat doet deze lijn?
hij mag ze niet op 0 zetten namelijk
Gewijzigd op 14/09/2013 15:39:22 door space gremlin
dat is alleen voor het testen
vind jouw code er wel logischer uitzien. dus even kijken waar mij dit brengt,
want ik moet het invoegen.
maar achteraf logisch
het werkt in ieder geval
http://www.msxflash.nl/index2.php?p=cartridgesgames_search_sub1&sort=0feedback_info=Cartridges%20Search
Ik moet het alleen nog verfijnen en wat ik nog zocht.
sorteren van de uitkomst, echt order by asc achter de like regel kreeg ik niet voor elkaar.
kan en mag dat wel of moet dat op een andere manier.
bedankt
ah het sorteren werkt nu wel , dus is ook opgelost
Gewijzigd op 14/09/2013 16:03:29 door space gremlin