---
title: "Rad som inte skrivs ut... (från MySQL db)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/111639-rad-som-inte-skrivs-ut-från-mysql-db"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "aasah"
published: "2004-09-15T16:32:21.000Z"
updated: "2004-09-15T20:42:05.000Z"
replies: 6
views: 277
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/111639-rad-som-inte-skrivs-ut-från-mysql-db"
---

# Rad som inte skrivs ut... (från MySQL db)

## #1 — aasah, 2004-09-15T16:32Z

Det här är inte min dag... Vad är det jag inte ser?

```php
   $pos = 1;
   echo "<table><tr><th class=\"gold\">No</th>
         <th class=\"gold\">Member</th>
         <th class=\"gold\">Result</th>
         <th class=\"gold\">Date</th></tr>";
   while($rowHigh = mysql_fetch_array($q) && $pos < 11) {
      if ($_SESSION["X"] == $rowHigh["0"])
         $td = "<td class=\"blueC\">";
      else $td = "<td>";
      echo "<tr> $td $pos</td>$td".$rowHigh["0"]."</td>$td".$rowHigh["1"]."</td>$td".$rowHigh["2"]."</td></tr>";
      $pos++;
   }
   echo "</table><BR><BR>";
```

Skriver ut en tabell med följande utseende:
 

```
No   Member   Result   Date
1
```

 Hur i ... x( kan 1 skrivas ut när inte resten gör det??? :q
Tabellen ska innehålla en rad, och något måste den ju innehålla annars skulle inte 1:an heller skrivas ut! Så var är felet?     :x

Permalänk: https://www.webforum.nu/p/111639

## #2 — Pedda, 2004-09-15T16:48Z

Inget verkar hämtas från databasen.
Att 1 skrivs ut är ju inte så konstigt, det har du ju gett med variabeln $pos = 1;
Förmodligen har du något fel vid din sql sats.

Permalänk: https://www.webforum.nu/p/1440363

## #3 — aasah, 2004-09-15T19:41Z

Re: Rad som inte skrivs ut... (från MySQL db)

??? Pedda, vad menar du?

```php
   while($rowHigh = mysql_fetch_array($q) && $pos < 11) {
```

Förutsättningen för att while-satsen ska köras är att villkoret är uppfyllt. Eftersom villkoret är &&-at, måste båda villkoren vara uppfyllda. Om $q är tom så lämnar väl mysql_fetch_array($q) tillbaka FALSE? Det gör den ju i alla andra sammanhang när det inte finns mer att hämta. Menar du att den hanterar en tom mängd annorlunda??? :q

Permalänk: https://www.webforum.nu/p/1440456

## #4 — tydal, 2004-09-15T19:45Z

Prova att ta bort citationstecknena från $rowHigh\[\]. Jag vet inte om det är det, men de ska i alla fall inte vara där.

$rowHigh\[0\]
$rowHigh\[1\]

osv...

Permalänk: https://www.webforum.nu/p/1440458

## #5 — aasah, 2004-09-15T20:26Z

Fixat, tack. :) Men felet kvarstår... 

Dock har jag felsökt även på annat sätt och därför vet jag att tabellen innehåller en rad med följande info, (hämtad med mysql_fetch_array):
0 =\> Tester, 1 =\> 1, 2 =\> 2004-09-15, 3 =\> 10, 4 =\> \<mitt ip\>

Av detta borde (Tester, 10, 2004-09-15) komma ut med min SQL-fråga. Förutsatt att minst ett av de två tips jag fick i SQL-forumet om hur man jämför datum stämmer. Jag börjar tro att det är där skon klämmer... Eller kanske snarast i min tillämpning av tipsen. Dock förklarar det fortfarande inte hur jag hamnar i while-slingan om den inte hittar raden.... :(

Följande fungerar inte:

```php
$fiveDaysAgo = date("Y-m-d", time() - 60 * 60 * 24 * 5);
$query = "SELECT * FROM tabell
WHERE A ='".$_SESSION["sessID"]."' AND
B=".$_POST["B"]." AND Datum < $fiveDaysAgo";
```

Men inte heller detta verkar funka...

```php
 $query = "SELECT * FROM FROM tabell
WHERE A ='".$_SESSION["sessID"]."' AND
B=".$_POST["B"]."  AND Datum < DATE_SUB( CURDATE( ) , INTERVAL 5 DAY )";
```

En testkod som använder endera varianten och sedan:

```php
 $res = mysql_query($query) or die("main save: ".mysql_error());
 while ($row = mysql_fetch_array($res, MYSQL_NUM)) {
 foreach ($row as $ix => $val)
  echo "$ix =>  $val, ";
  echo "<BR>";
 }
```

skriver inte ut någonting alls???   :q  :x

Permalänk: https://www.webforum.nu/p/1440471

## #6 — tydal, 2004-09-15T20:36Z

Fixat!

Det har att göra med operatorsprioriteringen...

Felet är här:
while($rowHigh = mysql_fetch_array($q) && $pos \< 11) {

&& har högre prioritet än = så Php tolkar detta som:

while(
$rowHigh = 
(mysql_fetch_array($q) && $pos \< 11)
) {

Du måste därför använda parenteser och skriva så här:
while(($rowHigh = mysql_fetch_array($q)) && $pos \< 11) {

Permalänk: https://www.webforum.nu/p/1440477

## #7 — aasah, 2004-09-15T20:42Z

ÅÅH! Gudars skymning vilket korkat fel!!! Tusen tack, tydal! :birp :D

Permalänk: https://www.webforum.nu/p/1440482

---

Tråden på webben: https://www.webforum.nu/amne/php/111639-rad-som-inte-skrivs-ut-från-mysql-db
