Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Przeskakiwanie pierwszego rekordu, Zapytanie przeskakuje pierwszy rekord
Endzio
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 10.09.2007

Ostrzeżenie: (0%)
-----


Witam.
Problem trudny (dla mnie) i zarazem banalny (dla wielu z tego forum)..
Mianowicie, mam sondę, rozdzieloną na trzy tabele:

poll_topics
  1. CREATE TABLE `poll_topics`
  2. (
  3. `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  4. `created` INT(11) UNSIGNED NOT NULL,
  5. `topic` VARCHAR(100) NOT NULL,
  6. `active` INT(1) UNSIGNED NOT NULL DEFAULT '1',
  7. `votes` INT(10) NOT NULL DEFAULT '0'
  8. );


poll_options
  1. CREATE TABLE `scms_poll_options`
  2. (
  3. `id` INT(15) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  4. `topic_id` INT(10) UNSIGNED NOT NULL,
  5. `option` VARCHAR(100) NOT NULL,
  6. `votes` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0'
  7. );


Trzecie tabela to poll_votes, lecz ona nie dotyczy problemu.

Zapytanie:
  1. sql_query('SELECT t.id AS `poll_id`, t.topic, t.votes AS `total_votes`, o.id, o.option, o.votes AS `votes` FROM `poll_options` AS `o`, `poll_topics` AS `t` WHERE o.topic_id = t.id AND t.active = "1" ORDER BY o.id');

Ma za zadanie pobrać dane sondy - Pytanie ( t.topic), sumę głosów ( t.votes) oraz odpowiedzi (o.option) wraz z głosami (o.votes).

No i właśnie, po wykonaniu zapytanie sonda się wyświetla, liczba głosów, pytanie, odpowiedzi również, ALE pierwszy rekord (opcja) nie jest wyświetlany.

Wynik powinien wyglądać tak:
  1. Pytanie
  2. odp: 100%
  3. odp2: 0%
  4. odp3: 0%

a wygląda tak:
  1. Pytanie
  2. odp2: 0%
  3. odp3: 0%


I jeszcze zawartość tabeli poll_options


Dodam, że nawet podmiana `id` opcji nic nie daje.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no a jak wyswietlasz te rekordy? czesto ludzie najpierw pobieraja pierwszy rekord, a potem w petli pobieraja i wyswietlaja nastepne, przez co pierwszy sie nie wyswietla. pokaz caly kod php


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Endzio
post
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 10.09.2007

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $query = sql_query('SELECT t.id AS `poll_id`, t.topic, t.votes AS `total_votes`, o.id, o.option, o.v
  3. tes AS `votes` FROM `poll_options` AS `o`, `poll_topics` AS `t` WHERE o.topic_id
  4. = t.id AND t.active = 1 ORDER BY o.id');
  5. $db = sql_fetch_array($query);
  6. $id = $db['poll_id'];
  7. $topic = $db['topic'];
  8. $total_votes = $db['total_votes'];
  9. while ($db = sql_fetch_array($query))
  10. {
  11. $count = round(100 * ($db['votes'] / $db['total_votes']), 1);
  12. echo '<dd class="answer">'.$db['option'].': <span class="votes">'.$count.'%</span><span class="votes2">'.$db['votes'].'</span></dd><dd class="bar"><div><img src="templates/'.$template.'/bar.png" style="width: '.round($count).'%;" alt="'.$db['count'].'"></img></div></dd>';
  13. }
  14. ?>

Czyli to przez podwójny "sql_fetch_array"?
Jak najlepiej temu zaradzić?

Ten post edytował Endzio 8.07.2008, 14:41:11
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 19:26