Alle resultaten van sql in één variabele

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Anne

Anne

05/03/2009 19:21:00
Quote Anchor link
Beste Forummers,

Om de gegevens uit mijn database te halen gebruik ik het volgende script:
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
<?php
require_once 'db_config.php';

if($_SERVER['REQUEST_METHOD'] == 'POST')
{


$sql = "
    SELECT
        naam,
        trefwoorden
    FROM
        branche
    WHERE
     trefwoorden LIKE '%"
.mysql_real_escape_string($_POST['branche_zoek'])."%'
"
;

if(!$res = mysql_query($sql))
{

    trigger_error(mysql_error().'<br />In query: '.$sql);
}

elseif(mysql_num_rows($res) == 0)
{

    echo 'Geen resultaten gevonden';
}

else
{
    while($row = mysql_fetch_assoc($res))
    {

        echo $row['naam'].'<br />';
    }
}
}

?>


Nu is het zo dat elk resultaat apart wordt geëchoed, maar ik wil graag dat ik bijv. door te doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $resultaten; ?>
dat dan alle resultaten van de query worden weergegeven.

Hoop dat het een beetje duidelijk is. Iemand enig idee hoe ik dit kan aanpakken??
 
PHP hulp

PHP hulp

23/11/2024 13:47:18
 
Jesper Diovo

Jesper Diovo

05/03/2009 19:24:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
var_dump($row);
?>


??
 
Anne

Anne

05/03/2009 19:26:00
Quote Anchor link
Bedankt voor je snelle reactie.
Als ik var_dump($row); doe, krijg ik alleen de melding: bool(false)
 

05/03/2009 19:29:00
Quote Anchor link
Ik denk dat je sowieso een multidimensionele array krijgt. Je kunt bijvoorbeeld van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
 while($row = mysql_fetch_assoc($res))
    {

        echo $row['naam'].'<br />';
    }

?>

dit maken
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$uitkomst
= array();
 while($row = mysql_fetch_assoc($res))
    {

        $uitkomst[] = $row;
    }

var_dump($uitkomst);
?>

(Gok ik zo...)
 
Jesper Diovo

Jesper Diovo

05/03/2009 19:29:00
Quote Anchor link
Edit: Karl's voorbeeld is beter :-).
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
 
Anne

Anne

05/03/2009 19:36:00
Quote Anchor link
Bedankt! Als ik het voorbeeld van Karl gebruik, krijg ik een hele rij warrige uitkomsten:

array(6) { [0]=> array(2) { ["naam"]=> string(6) "Overig" ["trefwoorden"]=> string(0) "" } [1]=> array(2) { ["naam"]=> string(10) "Slaapkamer" ["trefwoorden"]=> string(0) "" } [2]=> array(2) { ["naam"]=> string(8) "Badkamer" ["trefwoorden"]=> string(0) "" } [3]=> array(2) { ["naam"]=> string(6) "Keuken" ["trefwoorden"]=> string(0) "" } [4]=> array(2) { ["naam"]=> string(11) "Electronica" ["trefwoorden"]=> string(0) "" } [5]=> array(2) { ["naam"]=> string(9) "Woonkamer" ["trefwoorden"]=> string(33) "Bank, lamp, kast, stoelen, tafels" } }


Hoe kan ik ervoor zorgen dat ik niet deze hele rij krijg in de variabele $row, maar alleen de namen van de branches?
Dus alleen de $row['naam'] ?
 
Jesper Diovo

Jesper Diovo

05/03/2009 19:38:00
Quote Anchor link
echo $row['naam'], zoals je al deed?
 

05/03/2009 19:40:00
Quote Anchor link
Jezpur schreef op 05.03.2009 19:38:
echo $row['naam'], zoals je al deed?

Ja. Inderdaad, ik snap eigenlijk ook niet echt waarom je die zooi in een andere variable wilt stoppen.
Of je doet:
$uitkomst[] = $row['naam'];
 
Anne

Anne

05/03/2009 19:43:00
Quote Anchor link
Nu krijg ik inderdaad niet meer die hele reeks, maar nog wel:
array(1) { [0]=> string(9) "Woonkamer" }

Ik wil dus niet dat array(1) { [0]=> string(9) "" } zoals je waarschijnlijk wel begrijpt, ik wil alleen dat woordje Woonkamer weergeven.

Enig idee hoe ik dit kan aanpakken??
Mijn huidige code:

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
<?php
require_once 'db_config.php';

if($_SERVER['REQUEST_METHOD'] == 'POST')
{


$sql = "
    SELECT
        naam,
        trefwoorden
    FROM
        branche
    WHERE
     trefwoorden LIKE '%"
.mysql_real_escape_string($_POST['branche_zoek'])."%'
"
;

if(!$res = mysql_query($sql))
{

    trigger_error(mysql_error().'<br />In query: '.$sql);
}

elseif(mysql_num_rows($res) == 0)
{

    echo 'Geen resultaten gevonden';
}

else
{
    
$uitkomst = array();
 while($row = mysql_fetch_assoc($res))
    {

        $uitkomst[] = $row['naam'];
    }

var_dump($uitkomst);
echo $row['naam'];


}
}

?>
 

05/03/2009 19:48:00
Quote Anchor link
Anne schreef op 05.03.2009 19:43:
Nu krijg ik inderdaad niet meer die hele reeks, maar nog wel:
array(1) { [0]=> string(9) "Woonkamer" }

Ik wil dus niet dat array(1) { [0]=> string(9) "" } zoals je waarschijnlijk wel begrijpt, ik wil alleen dat woordje Woonkamer weergeven.

Enig idee hoe ik dit kan aanpakken??
Mijn huidige code:

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
<?php
require_once 'db_config.php';

if($_SERVER['REQUEST_METHOD'] == 'POST')
{


$sql = "
    SELECT
        naam,
        trefwoorden
    FROM
        branche
    WHERE
     trefwoorden LIKE '%"
.mysql_real_escape_string($_POST['branche_zoek'])."%'
"
;

if(!$res = mysql_query($sql))
{

    trigger_error(mysql_error().'<br />In query: '.$sql);
}

elseif(mysql_num_rows($res) == 0)
{

    echo 'Geen resultaten gevonden';
}

else
{
    
$uitkomst = array();
 while($row = mysql_fetch_assoc($res))
    {

        $uitkomst[] = $row['naam'];
    }

var_dump($uitkomst);
echo $row['naam'];


}
}

?>

Je hebt meer resultaten....
Verder krijg je nu gewoon een array van me, dus daarmee kan je doen wat je wil.
 
Anne

Anne

05/03/2009 19:55:00
Quote Anchor link
bedankt voor de goeie hulp! nog één vraagje: weet je een manier om die onnodige array(1) { [0]=> string(9) weg te halen?
Dus dat als ik bijv. ergens $allebranches doe, dat ik dan gewoon alleen de namen van de branches krijg en niet dat array(1) enz. ??

Misschien zijn het domme vragen, sorry daarvoor, maar ik ben niet zo thuis met arrays...
 
- SanThe -

- SanThe -

05/03/2009 19:58:00
Quote Anchor link
Regel 33 verwijderen.
 

05/03/2009 19:59:00
Quote Anchor link
Anne schreef op 05.03.2009 19:55:
bedankt voor de goeie hulp! nog één vraagje: weet je een manier om die onnodige array(1) { [0]=> string(9) weg te halen?
Dus dat als ik bijv. ergens $allebranches doe, dat ik dan gewoon alleen de namen van de branches krijg en niet dat array(1) enz. ??

Misschien zijn het domme vragen, sorry daarvoor, maar ik ben niet zo thuis met arrays...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
foreach ($uitkomst as $naam) {
echo $naam . "<br />";
}

?>

Maar dan kan je dit allemaal weglaten, en terug gaan naar zoals je het eerst had.
 
Anne

Anne

05/03/2009 20:03:00
Quote Anchor link
Maar als ik terugga naar zoals ik het eerst had, kan ik niet met één variabele de alle resultaten weergeven. Zoals ik al zei worden ze dan steeds stuk voor stuk apart ge-echo-ed.

Is er een manier om alle uitkomsten van mysql in één variabele te zetten?

P.S. als ik regel 33 weghaal worden er geen resultaten meer weergegeven...
 

05/03/2009 20:05:00
Quote Anchor link
Anne schreef op 05.03.2009 20:03:
Maar als ik terugga naar zoals ik het eerst had, kan ik niet met één variabele de alle resultaten weergeven. Zoals ik al zei worden ze dan steeds stuk voor stuk apart ge-echo-ed.

Klopt. Maar wat is het verschil met in één keer echo'en of een apart aantal keer?

Anne schreef op 05.03.2009 20:03:
Is er een manier om alle uitkomsten van mysql in één variabele te zetten?

Ja, je hebt nu een array. Omdat deze waarde (vind ik) in een array hoort (aangezien je dan later misschien weer het een en ander wilt uithalen d'r mee) krijg je een array.

Anne schreef op 05.03.2009 20:03:
P.S. als ik regel 33 weghaal worden er geen resultaten meer weergegeven...

Klopt. Kijk maar naar de var_dump

Vertel nou eens waarom je per se wilt dat het allemaal in een string terecht komt. (Want een array is ookal één variable.)
 
Anne

Anne

05/03/2009 20:10:00
Quote Anchor link
ik wil graag dat alles in bijv. de vorm $alleresultaten komt, omdat ik met die resultaten laten weer ga kijken in een andere database.
Daarom wil ik dus als het ware alle resultaten van de eerste mysql query opslaan in een string...
 
Eddy E

Eddy E

05/03/2009 20:37:00
Quote Anchor link
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
require_once 'db_config.php';

if($_SERVER['REQUEST_METHOD'] == 'POST')
{


$sql = "
    SELECT
        naam
    FROM
        branche
    WHERE
     trefwoorden LIKE '%"
.mysql_real_escape_string($_POST['branche_zoek'])."%'
"
;

if(!$res = mysql_query($sql))
{

    trigger_error(mysql_error().'<br />In query: '.$sql);
}

elseif(mysql_num_rows($res) == 0)
{

    echo 'Geen resultaten gevonden';
}

else
 {
 $uitkomst = array();
 while($row = mysql_fetch_assoc($res))
   {

   $uitkomst[] = $row['naam'];
   }

 $uitkomst = implode('<br>', $uitkomst);
 }
}





// echo maar
echo $uitkomst;
?>


Ik heb 'trefwoorden' maar even uit de query gehaald, want die wil je blijkbaar toch niet zien.

Edit:
Gebruik van de verkeerde variabelen verbeterd.... blijkbaar ergens verkeerd gegaan in de editor.
Gewijzigd op 01/01/1970 01:00:00 door Eddy E
 
Jesper Diovo

Jesper Diovo

05/03/2009 20:43:00
Quote Anchor link
@Eddy: echo $resultaat; denk ik.
 
- SanThe -

- SanThe -

05/03/2009 20:44:00
Quote Anchor link
Jezpur schreef op 05.03.2009 20:43:
@Eddy: echo $resultaat; denk ik.

En dan ook de implode op $uitkomst graag.
 
Anne

Anne

05/03/2009 20:57:00
Quote Anchor link
Bedankt, super!
Helaas krijg ik geen uitslag want met deze code:

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
<?php
require_once 'db_config.php';

if($_SERVER['REQUEST_METHOD'] == 'POST')
{


$sql = "
    SELECT
        naam
    FROM
        branche
    WHERE
     trefwoorden LIKE '%"
.mysql_real_escape_string($_POST['branche_zoek'])."%'
"
;

if(!$res = mysql_query($sql))
{

    trigger_error(mysql_error().'<br />In query: '.$sql);
}

elseif(mysql_num_rows($res) == 0)
{

    echo 'Geen resultaten gevonden';
}

else
 {
 $uitkomst = array();
 while($row = mysql_fetch_assoc($res))
   {

   $uitkomst[] = $row['naam'];
   }

 $uitkomt = implode('<br>', $res);
 }
}


// echo maar
echo $uitkomst;
?>


Krijg ik alleen te zien:
Array

Doe ik misschien iets verkeerd?
 
- SanThe -

- SanThe -

05/03/2009 21:28:00
Quote Anchor link
uitkomt != uitkomst

En geen $res maar $uitkomst zoals eerder gemeld.
 

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.