php variable

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Space gremlin

space gremlin

14/09/2013 14:43:09
Quote Anchor link
Hoi vraagje ik heb voorafgaand een keuze menu, welke 1 en 0 doorgeeft
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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php>
// 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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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);

?>


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
 
PHP hulp

PHP hulp

06/12/2022 01:41:39
 
Frank Nietbelangrijk

Frank Nietbelangrijk

14/09/2013 15:20:28
Quote Anchor link
Het probleem dat ontstaat is dat je in het WHERE gedeelte niet weet of en hoeveel statements er in gaan komen.
Nu komt er twee keer || te staan als er een statement mist. dat lossen we zo op:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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;
?>
 
Space gremlin

space gremlin

14/09/2013 15:34:33
Quote Anchor link
Ja inderdaad dat was nog niet het probleem
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$keuze_1
= $keuze_2 = $keuze_3 = $keuze_4 = 0;
?>
Gewijzigd op 14/09/2013 15:39:22 door space gremlin
 
Frank Nietbelangrijk

Frank Nietbelangrijk

14/09/2013 15:44:00
Quote Anchor link
dat is alleen voor het testen
 
Space gremlin

space gremlin

14/09/2013 15:45:18
Quote Anchor link
okee vermoedde ik al , maar denk vraag het even.

vind jouw code er wel logischer uitzien. dus even kijken waar mij dit brengt,
want ik moet het invoegen.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

14/09/2013 15:48:27
Quote Anchor link
dit is allemaal slechts om te testen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$keuze_1
= $keuze_2 = $keuze_3 = $keuze_4 = 0;
$namec = 'test';
$keuze_2 = 0;
?>
 
Space gremlin

space gremlin

14/09/2013 15:52:37
Quote Anchor link
ja inderdaad de rest had ik door voor testen maar dat andere niet
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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.