[php/mysql]fetch_array geeft verkeerde data

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Sinds ik mijn account heb, heb ik alleen de mooie search gebruikt, maar na een jaar met het account te zitten, kan ik nu niet mijn oplossing vinden en wordt het tijd voor mijn 1ste vraag.

Ik heb de volgende database in MySQL:
code:
1
2
3
4
5
6
7
8
9
 ________________________________________________
| lay_ID | lay_CATEGORIE | lay_SIDE | lay_HEIGHT |
|________|_______________|__________|____________|
|   1    |   Firmware    |   1      |   3        |
|________|_______________|__________|____________|
|   2    |   BIOS        |   1      |   1        |
|________|_______________|__________|____________|
|   3    |   Drivers     |   1      |   2        |
|________|_______________|__________|____________|


Nu wil ik dat er wordt gekeken welke categorie er op hoogte 1 zit en dan vervolgens 2 etc... Deze moeten vervolgens ook te zien zijn. Dus hierbij moet het volgende te zien zijn: (dit is ff simpel)

1 --> BIOS
2 --> Drivers
3 --> Firmware

Nu hoopte ik hiervoor een mooi script te maken om dit te maken, namelijk het volgende:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Maakt eerst verbinding met de database.
// Open de tabel met alleen lay_CATEGORIE en lay_HEIGHT als lay_SIDE 1 is.
$database["sql"]="select lay_CATEGORIE,lay_HEIGHT from layout WHERE (lay_SIDE=1)";
$result=mysql_query($database["sql"]);
// Telt hoeveel rijen er zijn.
$num_rows = mysql_num_rows($result);
$i=1;
// Opent de While die maar rond blijft gaan, totdat $i gelijk is aan 3 (de aantal rijen die geteld zijn.)
while($row=mysql_fetch_array($result) AND $i<=$num_rows)
  {
  $cat1=$row["lay_CATEGORIE"];
  $cat2=$row["lay_HEIGHT"];
// Wanneer lay_HEIGHT gelijk is aan 1 dan wordt deze weergegeven en kijkt welke er met 2 begint etc. 
  if($cat2=$i)
    {
    print($cat2."<br>");
    print($cat1."<br>");
    $i++;
    }


De code die ik gebruik zal wel brak zijn, maar het gaat nu om de uitkomst. Er komt namelijk niet het volgende uit:

1 --> BIOS
2 --> Drivers
3 --> Firmware

Maar iets anders namelijk:

1 --> Firmware
2 --> BIOS
3 --> Drivers

Het vreemde is dat de lay_HEIGHT wel netjes wordt weergegeven, maar dat de Lay_CATEGORIE de verkeerde is, deze worden op de volgorde weergegeven zoals ze in de tabel staan.

Wat heb ik allemaal geprobeerd?
1. Gebruik te maken van mysql_fetch_row
2. $row[“lay_HEIGHT”] etc… in 1 keer weergeven ipv. eerst in $cat1 etc… te zetten.
3. en nog een aantal dingen die ik al vergeten ben…

Misschien komen jullie in 1 keer met de oplossing en dat het gewoon een domme fout van mij zelf was, maar na gisteren en vandaag er een aantal uur op hebben gestaard en geknutseld was ik toch beu… Zoals ik als eerder vertelde heb ik de search gebruikt, maar ook Google.

(Damn wat een lap tekst voor de eerste keer :+)

[ Voor 4% gewijzigd door Verwijderd op 08-12-2003 19:06 ]


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

PHP:
1
  if($cat2=$i)

Daar staat:
als ( assign $i aan $cat2 )
Dus bij het printen staat er in $cat2 hetzelfde als in $i ;)

Je bedoelt vermoedelijk
PHP:
1
if ( $i == $cat2 ) {
note de dubbele '='.

Verder vraag ik me uberhaupt af wat je wilt bereiken met die constructie :?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt voor de snelle oplossingen... Het was dus zoals ik al zei een klein probleem |:(.
De bedoeling hiervan is om heel simpel de layout te veranderen m'n website, zoals je in de in de layout van m'n tabel kan zien is er een lay_SIDE en lay_HEIGHT.
De lay_SIDE zorgt ervoor dat de gegevens links of rechts van de pagina komen te staan (1 of 2) en de lay_HEIGHT moet er voor zorgen dat de gegevens ook op de goede volgorde komen te staan.
Voorbeeld zoals het nu staat (zie nog steeds eerste post)
________
BIOS
.....
.....
________
Drivers
.....
.....
________
Firmware
.....
.....

Door nu heel simpel zo'n cijfer te veranderen kan ik 1 zo'n tabel (bijvoorbeeld BIOS) naar rechts verplaatsen of naar beneden.

Khoop dat het allemaal zo duidelijk is :)
Nu kan ik iig weer verder werken. danku

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
SQL:
1
WHERE (...) ORDER BY lay_HEIGHT