selectie lukt me niet
in de php heb ik daarom het onderscheid in man of vrouw (er waren nog meer mogelijkheden zoals, maakt niet uit en koppels) vervangen voor vriendschap of relatie. Nu lukt het me niet om in het zoekresultaat alleen leden te tonen die op zoek zijn naar een vriendschap óf een relatie.
Zoals de code hieronder is wordt iedereen getoond.
Kan iemand mij adviseren hoe ik deze beter kan schrijven?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
if ( ($config['bypass_search_lookgender'] == 'N' or $config['bypass_search_lookgender'] == '0' ) and ( $config['accept_lookgender'] == 'Y' or $config['accept_lookgender'] == '1') ) {
$txtgender_search = "and (user.lookgender = 'M' or user.lookgender = 'F') ";
$sqlWhere .= $txtgender_search;
}
$txtlookgender_search = '';
if ($user['lookgender'] == 'F') {
$txtlookgender_search = " AND user.gender in ('F') ";
} elseif ($user['lookgender'] != 'M') {
$txtlookgender_search = " AND user.gender in ('M') ";
}
$txtgender_search = "and (user.lookgender = 'M' or user.lookgender = 'F') ";
$sqlWhere .= $txtgender_search;
}
$txtlookgender_search = '';
if ($user['lookgender'] == 'F') {
$txtlookgender_search = " AND user.gender in ('F') ";
} elseif ($user['lookgender'] != 'M') {
$txtlookgender_search = " AND user.gender in ('M') ";
}
Gewijzigd op 21/03/2013 10:10:36 door Bas IJzelendoorn
In deze tutorial kun je wat lezen over normaliseren: http://www.phphulp.nl/php/tutorial/overig/normaliseren/150/normaliseren-inleiding/263/
en in deze tutorial gaat het over MySQL: http://www.phptuts.nl/view/41/
Gewijzigd op 17/03/2013 12:36:18 door Frank Nietbelangrijk
Kun je me ook aangeven hoe ik de code dan moet schrijven in dit geval?
Ik zal je proberen de MYSQL oplossing te geven met de namen zoals die behoren te zijn. je moet dan zelf even de namen aanpassen waar je dat wilt:
voor vrouwen die vriendschap zoeken:
voor vrouwen die een relatie zoeken:
waarschijnlijk zal je nog meer where statements moeten toevoegen. die kun je koppelen met AND:
stel dat jij als user bent ingelogd en dat jij user_id nummer 3 bent.
Je wilt dan niet jezelf tegen komen als mogelijke kandidaat voor een vriendschap of relatie:
Tip: echo eens de query op het scherm die je nu hebt en desnoods post hem eens op het forum
Ik heb bovenstaande geprobeerd maar dit lukt niet, ik ben bang dat dit voor een beginner als ik ben toch te lastig is.
Je geeft adviezen die voor een php'er te gebruiken zijn, maar niet voor mij.
Gewijzigd op 17/03/2013 13:38:39 door Caroline de K
Caroline de K op 17/03/2013 13:35:17:
Dus ik doe niets met die if statements die ik nu heb?
Je zegt het bijna goed. De kunst van SQL is om uit de database te halen wat je nodig hebt en vooral niet meer dan wat je nodig hebt. Nadat je het juiste resultaat uit de database hebt gehaald kun je het resultaat zonder allerlei if en else statements inderdaad zo op het scherm toveren.
Ik adviseer je toch dringend om die tutorial over SQL te lezen.
Maar als je wilt dat iemand je hier verder helpt doe dan eens en zet de query die jij dan ziet op de webpagina eens hier in het forum.
hierbij kan $query ook $sql zijn of iets dergelijks want dat kan ik vanaf hier niet zien
Toevoeging op 17/03/2013 14:00:55:
ik stuur je wel even een prive bericht
Gewijzigd op 17/03/2013 13:57:51 door Frank Nietbelangrijk
het moet zijn $sql denk ik maar ik heb geen idee wat je bedoelt :-) Waar 'doe' ik dat?
daar waar ook je query uitgevoerd wordt. dat zou kunnen zijn mysql_query(...);
bedoel je dan in de phpadmin? of in een php-bestand?
php bestand
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if ( ($config['bypass_search_lookgender'] == 'N' or $config['bypass_search_lookgender'] == '0' ) and ( $config['accept_lookgender'] == 'Y' or $config['accept_lookgender'] == '1') ) {
$txtgender_search = "and (user.lookgender = 'M' or user.lookgender = 'F') ";
$sqlWhere .= $txtgender_search;
}
$txtlookgender_search = '';
if ($user['lookgender'] == 'F') {
$txtlookgender_search = " AND user.gender in ('F') ";
} elseif ($user['lookgender'] != 'M') {
$txtlookgender_search = " AND user.gender in ('M') ";
}
echo $query
?>
if ( ($config['bypass_search_lookgender'] == 'N' or $config['bypass_search_lookgender'] == '0' ) and ( $config['accept_lookgender'] == 'Y' or $config['accept_lookgender'] == '1') ) {
$txtgender_search = "and (user.lookgender = 'M' or user.lookgender = 'F') ";
$sqlWhere .= $txtgender_search;
}
$txtlookgender_search = '';
if ($user['lookgender'] == 'F') {
$txtlookgender_search = " AND user.gender in ('F') ";
} elseif ($user['lookgender'] != 'M') {
$txtlookgender_search = " AND user.gender in ('M') ";
}
echo $query
?>
Dan zet je onderaan wat hij vroeg: echo $query, zoals in mn voorbeeld
Als ik die code bovenin dat bestand zet, gebeurt er niets.
Maar misschien bedoel je wel dat ik een apart bestand moet maken met alleen die code erin. In dat geval: dan krijg ik een geheel lege pagina.
Toevoeging op 17/03/2013 17:20:44:
Ah, helaas. maar dan komt er ook een lege pagina.
En als ik gewoon de code doe zoals ik die nu heb dan krijg ik als ik zoek naar vrouwen die vriendschap zoeken of een relatie zoeken altijd alle aanwezige leden te zien als resultaat
Gewijzigd op 17/03/2013 17:22:37 door Caroline de K
Bedankt voor jullie reacties