selectie lukt me niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Caroline de K

Caroline de K

17/03/2013 11:12:56
Quote Anchor link
Ik heb een datingsite en er is een keuze voor vriendschap of relatie. De site is alleen voor vrouwen.
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)
PHP script in nieuw venster Selecteer het PHP script
1
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') ";
}
Gewijzigd op 21/03/2013 10:10:36 door Bas IJzelendoorn
 
PHP hulp

PHP hulp

24/11/2024 02:04:23
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/03/2013 12:35:09
Quote Anchor link
Als ik het zo lees dan veranderd je database model ook. Je kunt de kolom lookgender en gender in feite gewoon schrappen als deze site zich enkel op vrouwen richt. Daarnaast zul je een kolom moeten maken waarin de relatie-type wordt bijgehouden. Je doet dit het makkelijkst in phpMyAdmin.

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
 
Caroline de K

Caroline de K

17/03/2013 12:43:33
Quote Anchor link
Ik gebruik de beide kolommen nu voor gender en relatie type (lookgender). Omdat het door alle scripts heen gebruikt wordt wil ik zo min mogelijk aan de database zelf veranderen namelijk.

Kun je me ook aangeven hoe ik de code dan moet schrijven in dit geval?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/03/2013 13:19:12
Quote Anchor link
Caroline, een goede editor met een search/replace functie doet veel werk voor je als het gaat over over variabelen van naam wijzigen, en geeft je het voordeel dat we een appel geen banaan gaan noemen. wat mij betreft is dat dan ook wel noodzakelijk om het geheel begrijpbaar te houden.

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM `user` WHERE `relatietype` = 'vriendschap';


voor vrouwen die een relatie zoeken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM `user` WHERE `relatietype` = 'relatie';


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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM `user` WHERE `relatietype` = 'relatie' AND `user_id` != 3;


Tip: echo eens de query op het scherm die je nu hebt en desnoods post hem eens op het forum
 
Caroline de K

Caroline de K

17/03/2013 13:35:17
Quote Anchor link
Dus ik doe niets met die if statements die ik nu heb?
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
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/03/2013 13:56:41
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $query; ?>
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
 
Caroline de K

Caroline de K

17/03/2013 14:10:16
Quote Anchor link
het moet zijn $sql denk ik maar ik heb geen idee wat je bedoelt :-) Waar 'doe' ik dat?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/03/2013 14:11:41
Quote Anchor link
daar waar ook je query uitgevoerd wordt. dat zou kunnen zijn mysql_query(...);
 
Caroline de K

Caroline de K

17/03/2013 16:07:13
Quote Anchor link
bedoel je dan in de phpadmin? of in een php-bestand?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/03/2013 16:37:03
Quote Anchor link
php bestand
 
Donny Wie weet

Donny Wie weet

17/03/2013 17:13:00
Quote Anchor link
Als dit je bestand is:

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


Dan zet je onderaan wat hij vroeg: echo $query, zoals in mn voorbeeld
 
Caroline de K

Caroline de K

17/03/2013 17:16:08
Quote Anchor link
Het spijt me. Ik denk dat je gewend bent om mensen te helpen die al wel het een en ander weten van php en dat een korte aanwijzing voldoende is. Helaas.

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
 
Caroline de K

Caroline de K

21/03/2013 10:00:14
Quote Anchor link
Ik heb het inmiddels opgelost.
Bedankt voor jullie reacties
 



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.