SQL query opzetten adhv html form variabele

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Mark van Dijk

Mark van Dijk

18/07/2011 13:20:05
Quote Anchor link
Goedemiddag,

Ik zit al een paar dagen te puzzelen op het volgende. Ik probeer een sql query op te laten bouwen adhv waarden die via een html formulier zijn doorgegeven. Vervolgens moet die waarden via een array omgezet worden naar xml

Ik heb nu het als volgt:

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
<?php
//variabele uit formulier omzetten in 'gewone' variabele.
$stat1 = $_POST['stat1'];
$product1 = $_POST['product1'];

//data ophalen
$sqldata = "SELECT '$stat1' FROM 'kap_productgegevens' WHERE 'product' = '$product1' ORDER BY 'datum'ASC";
$sqldataresult = mysql_query($sqldata)
  or die (mysql_error());

//query result omzetten naar xml
$xml_output = "<xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n";
$xml_output .= "<row>\n";
$xml_output .= "<string>" . $product1 . "</string>\n";

while ($row = mysql_fetch_array($sqldataresult)) {
  $xml_output .="<number>" . $row['$data1'] . "</number>\r\n";
}

$xml_output .= </row>\n";

//xml opslaan in document komt hierna
?>



Ik krijg een xml document maar hij geeft de waarde van $stat1 weer tussen <number> en </number> terwijl $stat1 bedoelt is om de juiste kolom te selecteren in de array en adh daarvan de waarden uit te lezen.

Kan wat ik wil Uberhaupt wel? Ik denk het wel, maar ik zie niet wat ik fout doe. Heb al tig dingen geprobeerd. Helaas, zonder resultaat.

Heeft iemand een idee wat ik fout doe?

alvast bedankt!
Mark
Gewijzigd op 18/07/2011 13:24:19 door Mark van Dijk
 
PHP hulp

PHP hulp

06/12/2022 01:05:48
 
- SanThe -

- SanThe -

18/07/2011 14:14:24
Quote Anchor link
Leuk al die quotes in de query. Je weet dat alles wat tussen quotes staat als 'tekst' wordt gezien en niet als veld- of kolomnaam.
 
Kevin Ellen

Kevin Ellen

18/07/2011 14:23:05
Quote Anchor link
Geen dubbele vars, haal vars buiten quotes, gebruik de juiste quotes. En wellicht dat je ook wil kijken naar real string escape.
 
Mark van Dijk

Mark van Dijk

18/07/2011 15:06:11
Quote Anchor link
Met de quotes heb ik inderdaad van alles geprobeerd, maar lukken wil het niet. Iemand een suggestie?
 
- Ariën  -
Beheerder

- Ariën -

18/07/2011 15:13:07
Quote Anchor link
Waarom gebruik je niet gewoon SimpleXML of DOM voor de opbouw van je XML-structuur?
 
Mark van Dijk

Mark van Dijk

18/07/2011 15:34:25
Quote Anchor link
- Aar - op 18/07/2011 15:13:07:
Waarom gebruik je niet gewoon SimpleXML of DOM voor de opbouw van je XML-structuur?


omdat het de enige methode is die ik ken. Ik ben een beginner, dus roei ik met de kennis die ik heb.
 
- Ariën  -
Beheerder

- Ariën -

18/07/2011 15:37:55
 
Mark van Dijk

Mark van Dijk

18/07/2011 15:48:18
Quote Anchor link


Bedankt. Heb er even snel doorheen gekeken, maar zal er mijn tijd aan moeten besteden. Echter zie ik niet hoe dit mijn probleem kan oplossen? Wil je hiermee zeggen dat wat ik nu heb volledig fout gaat? Of is dit gewoon een andere methode voor hetzelfde? Het enige wat er nu fout lijkt te gaan is de manier waarop ik variabelen in een sql query gebruik.
 
- Ariën  -
Beheerder

- Ariën -

18/07/2011 15:49:39
Quote Anchor link
Als je met XML bezig gaat houden is de de beste manier. Dit staat los van je probleem verder.
 
Mark van Dijk

Mark van Dijk

18/07/2011 15:55:45
Quote Anchor link
- Aar - op 18/07/2011 15:49:39:
Als je met XML bezig gaat houden is de de beste manier. Dit staat los van je probleem verder.


Toch bedankt... :-)
 
- SanThe -

- SanThe -

18/07/2011 16:04:31
Quote Anchor link
Mark van Dijk op 18/07/2011 15:06:11:
Met de quotes heb ik inderdaad van alles geprobeerd, maar lukken wil het niet. Iemand een suggestie?


Ja, gewoon géén quotes.
 
Mark van Dijk

Mark van Dijk

18/07/2011 16:07:13
Quote Anchor link
- SanThe - op 18/07/2011 16:04:31:
Mark van Dijk op 18/07/2011 15:06:11:
Met de quotes heb ik inderdaad van alles geprobeerd, maar lukken wil het niet. Iemand een suggestie?


Ja, gewoon géén quotes.


Helemaal geen quotes? of alleen sommige quotes? Alleen de dubbele quotes? of alleen de enkele? Bedankt voor je antwoord, maar je zult toch wat specifieker moeten zijn voor deze beginner :-).
 
- SanThe -

- SanThe -

18/07/2011 16:37:22
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
// de query staat tussen dubbele quotes
$sqldata = "SELECT veldnaam // geen quotes
        FROM kolomnaam // geen quotes
        WHERE veldnaam // geen quotes
        = 'zoekword' // tekst => dus enkele quotes
        ORDER BY veldnaam // geen quotes
        ASC"
;
?>
 
Mark van Dijk

Mark van Dijk

18/07/2011 16:44:32
Quote Anchor link
Dus dat wordt dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$sqldata
= "SELECT $stat1
            FROM kap_productgegevens
            WHERE product = '$product1'
            ORDER BY datum
            ASC"
;
?>

Right?
 
Jasper DS

Jasper DS

18/07/2011 16:47:21
Quote Anchor link
neen, var buiten quotes. => '".$var."'
Gewijzigd op 18/07/2011 16:47:41 door Jasper DS
 
Mark van Dijk

Mark van Dijk

18/07/2011 16:52:32
Quote Anchor link
zo dan?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$sqldata
= "SELECT '".$stat1."'
            FROM kap_productgegevens
            WHERE product = '"
.$product1."'
            ORDER BY datum
            ASC"
;
?>
 
Jasper DS

Jasper DS

18/07/2011 16:54:44
Quote Anchor link
Dat lijkt me correct, vergeet ook niet mysql_real_escape_string toe te voegen indien nodig. Ik weet niet of die vars veilig zijn maar ik denk van niet.
 
Mark van Dijk

Mark van Dijk

18/07/2011 16:56:49
Quote Anchor link
PHP Jasper op 18/07/2011 16:54:44:
Dat lijkt me correct, vergeet ook niet mysql_real_escape_string toe te voegen indien nodig. Ik weet niet of die vars veilig zijn maar ik denk van niet.


wat bedoel je met veilig?, ik heb de mysql_real_escape_string al eerder gezien en vanmiddag eens bekeken op de php site. Maar werd er niet veel wijs uit.

staan de quotes hier trouwens wel goed?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
while ($row = mysql_fetch_array($sqldataresult)) {
  $xml_output .="<number>" . $row['$data1'] . "</number>\r\n";
?>
Gewijzigd op 18/07/2011 16:58:48 door Mark van Dijk
 
- SanThe -

- SanThe -

18/07/2011 16:57:08
Quote Anchor link
Zoals Jasper al aangeeft.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$sqldata
= "SELECT " . $stat1 . "
            FROM kap_productgegevens
            WHERE product = '"
. mysql_real_escape_string($product1) . "'
            ORDER BY datum
            ASC"
;
?>


En zo is de query ook nog beveiligd.
 
Mark van Dijk

Mark van Dijk

18/07/2011 17:01:54
Quote Anchor link
- SanThe - op 18/07/2011 16:57:08:
Zoals Jasper al aangeeft.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$sqldata
= "SELECT " . $stat1 . "
            FROM kap_productgegevens
            WHERE product = '"
. mysql_real_escape_string($product1) . "'
            ORDER BY datum
            ASC"
;
?>


En zo is de query ook nog beveiligd.



Ik zie dat je het alleen bij de 2e var doet. Is daar een reden voor? Of kan ik het er bij de eerste var ook gewoon voor zetten?

bedankt voor de snelle reacties trouwens. Ik maak meer meters dan ooit tevoren. :-)
 
- SanThe -

- SanThe -

18/07/2011 17:13:18
Quote Anchor link
Ik nam eigenlijk aan dat de eerste var door de maker van het script is gevuld en niet door een websitebezoeker. Maar ik zie nu dat het ook uit een formulier komt. Ja, dan MOET dat er ook omheen voor de veiligheid.
 

Pagina: 1 2 volgende »



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.