[opgelost] Meer tonen van zelfde variabel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

David david

david david

19/01/2009 21:13:00
Quote Anchor link
IK heb het volgende stuk:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
    <?

if (!isset($_GET['category'])) {
    // kijken of middel is verkregen
    echo "middel niet gedefineerd";
}
else {

    // category pakken
     $query = "
        SELECT
            id,
            name,
            label,
            tekst,
            category,
            klant,
            DATE_FORMAT(datum, '%d-%m-%Y') AS nl_datum
        FROM
            upload  
        WHERE
                category = '"
.mysql_real_escape_string($_GET['category'])."'
        ORDER BY datum DESC
    "
;

    
    $result = mysql_query($query) or die('Error : ' . mysql_error());
    while ($myrow = mysql_fetch_assoc($result))
{

    extract($myrow);    


?>


<!-- ### WERK TONEN ######-->
<div style="width:500px;background-color:#0CF; float:right">
<div >
    <div>
        <h3> <? echo $myrow['klant'] ?></h3>
        <p class="newsdate">Geplaatst op: <? echo $myrow['nl_datum'] ?></p>
                <p class="newsdate">Middel: <? echo $myrow['category'] ?></p>
                <p class="newsdate">Opdracht: <? echo $myrow['label'] ?></p>


        <? echo '<img class=plaatje src="image/' . $myrow['name'] . '" />' ; ?>
        <p class="newstext"> <? echo ($myrow['tekst']) ?> </p>  
    
<!-- ### MEER  mits meer dan 2 opdrachten ####-->

         <?
        $query
.= "WHERE  klant = '". $myrow['klant'] ."' ";
        $result = mysql_query($query) or die('Error : ' . mysql_error());

        if (mysql_num_rows($result) > 2) {// meer dan 2 record dan dit uitvoeren:
        $row = mysql_fetch_assoc($result);
    ?>

    <div>
    <a class="submenu" href="index.php?pagina=klanten&klant=<?php echo $row['klant']?>"><h3>Meer werk van deze klant</h3></a>
</div>

<?
} //aantal resultaten check afsluiten (nuw_rows >2...)

?>


    
    </div>
</div>
</div>


<?

} // extract row afsluiten
} // klant ophalen aflsuiten (else..)
?>

    
</div> ?>


En toon alle opdrachten binnen gekozen category, dat werkt goed.. Alleen nu wil per opdracht een link maken naar meer werk van die klant MITS er meer dan twee opdrachten zijn van die klant.
ik krijg nu de error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE klant = 'naam van klant'' at line 14 (niks te zien)

er moet iets niet koppen maar wat.. (regel 47-63)
thnx!
Gewijzigd op 01/01/1970 01:00:00 door David david
 
PHP hulp

PHP hulp

08/11/2024 21:47:39
 
Noppes

Noppes

19/01/2009 21:20:00
Quote Anchor link
Je probeert een onmogelijke select te maken:

select
from
where
order by
where

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE klant = 'naam van klant'' at line 14 (niks te zien)

en dat wordt veroorzaakt door:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$query
.= "WHERE  klant = '". $myrow['klant'] ."' ";
?>
 
Jesper Diovo

Jesper Diovo

19/01/2009 21:25:00
Quote Anchor link
Wat een rommel is je code. Er zit nergens logica in hoe jij inspringt...

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php

if (!isset($_GET['category'])) {
    // kijken of middel is verkregen
    echo "middel niet gedefineerd";
}
else {
    // category pakken
    $query = "
        SELECT
            id,
            name,
            label,
            tekst,
            category,
            klant,
            DATE_FORMAT(datum, '%d-%m-%Y') AS nl_datum
        FROM
            upload  
        WHERE
                category = '"
. mysql_real_escape_string($_GET['category']) . "'
        ORDER BY datum DESC
    "
;

    $result = mysql_query($query) or die('Error : ' . mysql_error());
    while ($myrow = mysql_fetch_assoc($result)) {
        extract($myrow);
        ?>

<!-- ### WERK TONEN ######-->
<div style="width:500px;background-color:#0CF; float:right">
<div>
    <div>
        <h3> <?php echo $myrow['klant'] ?></h3>
        <p class="newsdate">Geplaatst op: <?php echo $myrow['nl_datum'] ?></p>
                <p class="newsdate">Middel: <?php echo $myrow['category'] ?></p>
                <p class="newsdate">Opdracht: <?php echo $myrow['label'] ?></p>


        <?php echo '<img class=plaatje src="image/' . $myrow['name'] . '" />'; ?>
        <p class="newstext"> <? echo ($myrow['tekst']) ?> </p>  
    
<!-- ### MEER  mits meer dan 2 opdrachten ####-->

        <?php
        $query
.= "WHERE  klant = '" . $myrow['klant'] . "' ";
        $result = mysql_query($query) or die('Error : ' . mysql_error());

        if (mysql_num_rows($result) > 2) { // meer dan 2 record dan dit uitvoeren:
            $row = mysql_fetch_assoc($result);
            ?>

            <div>
            <a class="submenu" href="index.php?pagina=klanten&klant=<?php echo $row['klant'] ?>"><h3>Meer werk van deze klant</h3></a>
            </div>
            <?php
        }
        ?>

    </div>
</div>
</div>
<?php
    }
}

?>

    
</div>


Zo. Nu ziet hij er enigszins netjes uit. Het kan nog netter, maar ik heb geen zin om alles voor jou te gaan doen.

1. Maak het dus nog verder netjes.
2. Kijk naar wat ik veranderd heb (shorttags e.d.)
3. Gebruik een geldige foutafhandeling.
4. Sluit echo's af met ; - nu doe je dat niet!
5. Wat doet extract() daar?? Heb je toch helemaal niet nodig?
6. Hoe kun je een extra WHERE toevoegen aan een query die eindigt met ORDER BY en dus eigenlijk al een volledige query is? (Zul je ook zien als je een goede foutafhandeling maakt!)

Succes ermee.
 
David david

david david

19/01/2009 21:35:00
Quote Anchor link
heb nu dit:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php

if (!isset($_GET['category'])) {
    // kijken of middel is verkregen
    echo "middel niet gedefineerd";
}
else {
    // category pakken
    $query = "
        SELECT
            id,
            name,
            label,
            tekst,
            category,
            klant,
            DATE_FORMAT(datum, '%d-%m-%Y') AS nl_datum
        FROM
            upload  
        WHERE
                category = '"
. mysql_real_escape_string($_GET['category']) . "'
        ORDER BY datum DESC
    "
;

    $result = mysql_query($query) or die('Error : ' . mysql_error());
    while ($myrow = mysql_fetch_assoc($result)) {
        extract($myrow);
        ?>

<!-- ### WERK TONEN ######-->
<div style="width:500px;background-color:#0CF; float:right">
<div>
    <div>
        <h3> <?php echo $myrow['klant'] ?></h3>
        <p class="newsdate">Geplaatst op: <?php echo $myrow['nl_datum'] ?></p>
                <p class="newsdate">Middel: <?php echo $myrow['category'] ?></p>
                <p class="newsdate">Opdracht: <?php echo $myrow['label'] ?></p>


        <?php echo '<img class=plaatje src="image/' . $myrow['name'] . '" />'; ?>
        <p class="newstext"> <? echo ($myrow['tekst']) ?> </p>  
    
<!-- ### MEER  mits meer dan 2 opdrachten ####-->

        <?php
           $query
= "SELECT
                 *
            FROM
                upload
            WHERE
                    klant = '"
. $myrow['klant'] ."'
               
               
            "
;
        $result = mysql_query($query) or die('Error : ' . mysql_error());

        if (mysql_num_rows($result) > 2) { // meer dan 2 record dan dit uitvoeren:
            $row = mysql_fetch_assoc($result);
            ?>

            <div>
            <a class="submenu" href="index.php?pagina=klanten&klant=<?php echo $row['klant'] ?>"><h3>Meer werk van deze klant</h3></a>
            </div>
            <?php
        }
        ?>

    </div>
</div>
</div>
<?php
    }
}

?>

    
</div>


nu blijft hij alleen alle resultaten binnen halen (oneindige loop..).. iets verkeerd afgesloten?
 
- SanThe -

- SanThe -

19/01/2009 21:43:00
Quote Anchor link
Beetje ingekort voor de duidelijkheid.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$result
= mysql_query($query) or die('Error : ' . mysql_error());
while ($myrow = mysql_fetch_assoc($result))
{

    $result = mysql_query($query) or die('Error : ' . mysql_error());
    if (mysql_num_rows($result) > 2)
    {

        $row = mysql_fetch_assoc($result);
    }
}

?>


Let op $result.
 
Jesper Diovo

Jesper Diovo

19/01/2009 21:46:00
Quote Anchor link
//
Aan de hand van SanThe's inkorting werd het wat duidelijker. $result blijft continu vernieuwd worden waardoor de loop zal blijven lopen. Misschien moet je eens gaan nadenken over duidelijkere en vooral verschillende variabele namen per query.

Ik snap sowieso niet waarom je die tweede query uitvoert. Je hebt de klant toch al in $myrow zitten? Wat je nu eigenlijk doet is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT klant
FROM upload
WHERE klant = 'naam van de klant'

Hoe kijk je hier nu zelf tegenaan?
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
 
David david

david david

19/01/2009 22:11:00
Quote Anchor link
ok ik heb nu dit:

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php

if (!isset($_GET['category'])) {
    // kijken of middel is verkregen
    echo "middel niet gedefineerd";
}
else {
    // category pakken
    $query = "
        SELECT
            id,
            name,
            label,
            tekst,
            category,
            klant,
            DATE_FORMAT(datum, '%d-%m-%Y') AS nl_datum
        FROM
            upload  
        WHERE
                category = '"
. mysql_real_escape_string($_GET['category']) . "'
        ORDER BY datum DESC
    "
;

    $result = mysql_query($query) or die('Error : ' . mysql_error());
    while ($myrow = mysql_fetch_assoc($result)) {
        ?>

<!-- ### WERK TONEN ######-->
<div style="width:500px;background-color:#0CF; float:right">
<div>
    <div>
        <h3> <?php echo $myrow['klant'] ?></h3>
        <p class="newsdate">Geplaatst op: <?php echo $myrow['nl_datum'] ?></p>
                <p class="newsdate">Middel: <?php echo $myrow['category'] ?></p>
                <p class="newsdate">Opdracht: <?php echo $myrow['label'] ?></p>


        <?php echo '<img class=plaatje src="image/' . $myrow['name'] . '" />'; ?>
        <p class="newstext"> <? echo ($myrow['tekst']) ?> </p>  
    
<!-- ### MEER  mits meer dan 2 opdrachten ####-->

  <?php
           $query
= "SELECT
                 *
            FROM
                upload
            WHERE
                    klant = '"
. $myrow['klant'] ."'
               
               
            "
;
        $result = mysql_query($query) or die('Error : ' . mysql_error());

        if (mysql_num_rows($result) > 2) { // meer dan 2 record dan dit uitvoeren:
            $row = mysql_fetch_assoc($result);
    ?>

            <a class="submenu" href="index.php?pagina=klanten&klant=<?php echo $row['klant'] ?>"><h3>Meer werk van deze klant</h3></a>
    
        <?php
        }
        ?>

      
 <!-- ### MEER  mits meer dan 2 opdrachten ####-->
      
        
    </div>
</div>
</div>
<?php
    }
}

?>


mar las ik dit stuk weglaat:
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
  <?php
           $query
= "SELECT
                 *
            FROM
                upload
            WHERE
                    klant = '"
. $myrow['klant'] ."'
               
               
            "
;
        $result = mysql_query($query) or die('Error : ' . mysql_error());

        if (mysql_num_rows($result) > 2) { // meer dan 2 record dan dit uitvoeren:
            $row = mysql_fetch_assoc($result);
    ?>

            <a class="submenu" href="index.php?pagina=klanten&klant=<?php echo $row['klant'] ?>"><h3>Meer werk van deze klant</h3></a>
    
        <?php
        }
        ?>

dan werkt het wel redelijk (geen loop meer..)
voorbeeld: http://blikvoer.com/temp/samtest/index.php
 
- SanThe -

- SanThe -

19/01/2009 22:15:00
Quote Anchor link
Wat ik dus bedoel is dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$result
= mysql_query($query) or die('Error : ' . mysql_error());
while ($myrow = mysql_fetch_assoc($result))
{

    $ANDEREresult = mysql_query($ANDEREquery) or die('Error : ' . mysql_error());
    if (mysql_num_rows($ANDEREresult) > 2)
    {

        $row = mysql_fetch_assoc($ANDEREresult);
    }
}

?>
 
David david

david david

19/01/2009 22:27:00
Quote Anchor link
aah nu werkt het idd..
was het probleem nou de dubbele query namen (+results)?

En terug komen op Jezpur wat betreft dubbele query..
Ik wil meer van die klant laten zien als dat er is.. en niet meer binnen category..dat gebeurt al..(denk ik :P )
 
- SanThe -

- SanThe -

19/01/2009 22:57:00
Quote Anchor link
Op het moment dat je dezelfde $var namen gebruikt worden ze gewoon overschreven. Dus in mijn scriptje wordt $result op regel 5 opnieuw gevuld met een andere waarde. Vervolgens ga je op regel 3 de volgende fetch doen maar wel van een heel ander resultaat. En weer op regel 5 ..... enz. En dat blijft ie doen tot in de eeuwigheid.
 



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.