26. maj 2005 - 10:47Der er
9 kommentarer og 1 løsning
Har en while sætning som fejler
Hej Jeg har følgende sætning som ikke laver en distinct eller stopper ved limit 20, hvad gør jeg galt
$result = mysql_query("SELECT Side_vist FROM Data") or die (mysql_error()); $rows = mysql_num_rows($result); $antal_total = $rows;
echo "<table width='400'> <tr> <td>Side:</td><td>Antal</td><td>antal i %</td> </tr>";
$result = mysql_query("SELECT DISTINCT Side_vist FROM Data ORDER BY Side_vist LIMIT 20") or die (mysql_error()); while ($rows = mysql_num_rows($result)){ $antal_msie1 = $rows; $antal_display_msie1 = 100 * $antal_msie1/$antal_total;
AI bliver først for alvor en del af arbejdet, når teknologien integreres i den måde, vi arbejder på. At have adgang til AI betyder ikke nødvendigvis, at medarbejderne er klar til at bruge den.
Okay, jeg kommer så frem til at den viser siderne, men den viser det samme tal ud for where som er sat i LIMIT.
Her har jeg så prøvet at lave en foreach på hver række, som her: $result = mysql_query("SELECT DISTINCT Side_vist FROM Data ORDER BY Side_vist LIMIT 20") or die (mysql_error()); while( $rows = mysql_fetch_array($result) ) { $antal = mysql_num_rows($result); foreach ($antal as $antal_1){ $antal_msie1 = $antal_1; $antal_display_msie1 = 100 * $antal_msie1/$antal_total; }
echo "<tr> <td width='200'>".$rows['Side_vist']."</td><td width='100'>".$antal_msie1."</td><td>".sprintf(" %.2f",($antal_display_msie1))." %</td> </tr>"; } men får denne fejl:
Warning: Invalid argument supplied for foreach() in d:\web\statistik\sidevisninger.php on line 24 som er denne linje: foreach ($antal as $antal_1){
har prøvet flere ting nu, men vil lige spørge til den igen
Det kommer jo an på - - - hvor har du $antal_total fra og hvad viser den? (jeg tror jeg kan gætte det, men ...) er side_vist en tæller for hver enkelt side?
Først ja, det er en tæller for hver enkelt side, når de bliver besøgt bliver deres navn lagt i databasen, og nogle enkelte andre oplysniger bliver også lagt deri.
$hvis du ser på det første indlæg kan du se hvor $antal_total kommer fra. Men det er for at tælle alle rækkerne, og så bruge det til at få procenten af siderne.
Linien $antal_total = $rows; sætter $antal_total til arrayet der indeholder de rækker du har fået ud af di forespørgsel og ikke antallet af resultater, som fås med mysql_num_rows($result); så derfor er min $antal = det du tror du har i $antal_total.
$result = mysql_query("SELECT Side_vist FROM Data") or die (mysql_error()); $rows = mysql_num_rows($result); $antal_total = $rows;
echo "<table width='400'> <tr> <td>Side:</td><td>Antal</td><td>antal i %</td> </tr>";
$result = mysql_query("SELECT Side_vist, count(*)as Hits FROM Data GROUP BY Side_vist ORDER BY Hits DESC") or die (mysql_error()); while( $rows = mysql_fetch_array($result) ) { //$antal = mysql_num_rows($result); $antal_msie1 = $rows['Hits']; $antal_display_msie1 = 100 * $antal_msie1/$antal_total;
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.