mysql data echo't array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daniyal hussain

daniyal hussain

26/05/2013 16:06:14
Quote Anchor link
Hallo,

Ik heb een probleem met een php code. De bedoeling is dat deze code verticaal gaat orderen, maar als ik de data uit de database haal en echo't komt er heletijd array

Dit is zover de 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
<? $data = array();
$qmerk = mysql_query("SELECT MODEL_CAR FROM  New_tablecars WHERE CAR_BRANDS = '$merk' GROUP BY MODEL_CAR");
while($qmerke = mysql_fetch_row($qmerk))
 $data[] = $qmerke ;
 
    $modelcar = $qmerke['MODEL_CAR'];
    echo count($data);
    for ($i = 0; $i < count($data) / 3; $i++){
          echo '<table><tr>';
for ($j = 0; $j < 3; $j++){
    echo '<td>' . $data[ $i + $j * 3] . '</td>';
  }


  echo '</tr><tr>';
}

echo '</tr></table>';
?>
  
Gewijzigd op 26/05/2013 16:07:56 door Daniyal hussain
 
PHP hulp

PHP hulp

15/11/2024 03:14:48
 
Erwin H

Erwin H

26/05/2013 16:22:18
Quote Anchor link
Maak van regel 4:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$data
[] = $qmerke[0];
?>

Merk op dat je mysql_fetch_row gebruikt, waardoor de rij uit je database een array met numerieke keys wordt. Gebruik je mysql_fetch_array dan krijg je een associatieve array.
 
Daniyal hussain

daniyal hussain

26/05/2013 21:36:32
Quote Anchor link
Maar ik krijg niet alle resultaten soms krijg ik het dubbel
 
Eddy E

Eddy E

26/05/2013 22:01:49
Quote Anchor link
Nee, je doet ook wat raar.

  • Sowieso is je naamgeving enigzins krom ($qwerk / $qwerke).
  • En dat toevoegen in $data[] is ook heel dubbel, want het staat al in $qwerke....
  • Je gebruikt mysql_fetch_row(), terwijl je hem wel als ASSOC aanspreekt.
  • Je hebt namen van kolommen in alleen maar hoofdletters? Dat moet je wijzigen (niet voor de werking, wel voor de duidelijkheid)
  • Je doet niets met het model-car.....???
  • Hoe wil je orderen? Is een SORT BY in je query niet beter/makkelijker?


Deze code is beter dan wat je nu hebt.
Kijk even regel voor regel na WÁT er beter/anders 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
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
<?php

    // schrijf de query voluit, nieuwe regels. Handiger, en makkelijk als je deze query wilt debuggen (zie bij de foutmeldingen)
    $sql = "    SELECT model_car
                FROM  New_tablecars
                WHERE car_brands = '"
.$merk."'
                GROUP BY model_car
                ORDER BY **************
                LIMIT 0, 100"
;
                
    // voer uit
    $result = mysql_query($sql);
    
    // ging het fout?
    if($result === false)
        {

        echo 'Er ging iets fout in de query:<hr>'.$sql.'<hr>';
        }

    // het ging goed
    else
        {
            // teller bijhouden
            $i = 0;
            
            // tabel starten
            echo '<table>
                        <tr>'
.PHP_EOL;
            
            // elke rij aflopen
            while($data = mysql_fetch_assoc($result))
                {

                // print de rij
                echo '<td>'. $data['model_car'] .'</td>';
                
                // eventueel rij sluiten
                if($i % 3 == 0)
                    {

                    echo '</tr>
                            <tr>'
.PHP_EOL;
                    }
                }

                
            // tabel sluiten
            echo '    </tr>
                    </table>'
.PHP_EOL;
        }

?>
 
Willem vp

Willem vp

27/05/2013 00:12:26
Quote Anchor link
@Eddy:
In jouw code wordt de tabel per rij gesorteerd en niet per kolom. Dat valt in een SQL-query volgens mij ook niet eenvoudig te doen. Uiteraard moet in de query wel gesorteerd worden, maar vervolgens heb je toch nog die for-loopjes (of een soortgelijke constructie) nodig om de gegevens op de juiste plaats in de tabel te krijgen.

Het is sowieso niet mogelijk om, zoals je in jouw code doet, de tabel op te bouwen tijdens het uitlezen van de resultset. Je zult eerst alle results moeten hebben opgehaald uit de database voor je de tabel kan maken.
Gewijzigd op 27/05/2013 00:18:05 door Willem vp
 



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.