isset toevoegen aan een select count

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kees Mulder

Kees Mulder

18/03/2019 19:31:04
Quote Anchor link
Is het ook mogelijk een een if isset toe te voegen aan een mysqli select. Wat ik ook probeer ik weet niet zo goed hoe ik dit kan oplossen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
$result_count = mysqli_query($conn,"SELECT COUNT(*) AS total_records
FROM items
LEFT JOIN items_filters ON items_filters.item_id = items.item_id WHERE  items.item_toon_id = '1' "
if (isset($_GET['taal'])) {
$sql .= "AND talen.talen_slug = '" . $_GET['taal']. "' ";
                }
$sql .= " GROUP BY items.item_id ORDER BY item ASC";
$result = $conn->query($sql);
Gewijzigd op 18/03/2019 19:32:06 door Kees Mulder
 
PHP hulp

PHP hulp

11/12/2019 15:46:22
 
- Ariën -
Beheerder

- Ariën -

18/03/2019 19:50:56
Quote Anchor link
Wat gaat er mis?

Verder wil ik je wel wijzen op de gevaarlijke SQL-injection via $_GET!
 
Kees Mulder

Kees Mulder

18/03/2019 20:29:58
Quote Anchor link
Het lukt me niet om af te breken na "items.item_toon_id = '1'" en voor de "if(isset)".

Dan kan ik het beter oplossen met:

mysqli_real_escape_string($_GET['taal'])
Gewijzigd op 18/03/2019 20:47:14 door Kees Mulder
 
- Ariën -
Beheerder

- Ariën -

18/03/2019 21:04:05
Quote Anchor link
Kijk eens goed: Je plaatst nu je SQL-query in je mysqli_query() functie.
Daaronder ga je je SQL-query uitbreiden buiten je mysqli_query in een $sql-variable die je opnieuw uitvoert.

Je splitst dus nu één mogelijk SQL query over twee verschillende mysqli_query-functies.

Oplossing: Bouw eerst je query op in $sql.
En voer de vervolgens uit met mysqli_query(...) of $conn->query($sql)
 
Kees Mulder

Kees Mulder

18/03/2019 21:22:10
Quote Anchor link
Inderdaad ik zie het en heb dat stuk opgelost. Maar hoe kan ik het probleem met de SQL injection oplossen?

Moet ik het eerst buiten de sql-query omzetten:

$geslacht = mysql_real_escape_string($_GET['geslacht']);

en dan terug plaatsen middels:

'".$geslacht."'
 
- Ariën -
Beheerder

- Ariën -

18/03/2019 21:30:48
Quote Anchor link
Gewoon integreren in je SQL-query.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql .= "AND talen.talen_slug = '".mysqli_real_escape_string($conn,$_GET['taal'])."'";
Gewijzigd op 18/03/2019 21:31:16 door - Ariën -
 



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.