login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Data wordt dubbel opgehaald

Offline Raze - 01/06/2009 20:57
Avatar van RazePHP beginner Hallo,

kan er iemand mij zeggen wat er fout is aan deze code?
Er staat in de database:
-poll1
-poll2

En hij haalt op:
-poll1
-poll1
hij geeft dus het aantal goed weer, maar hij geeft de eerste (of laatste, ligt aan "ORDER BY...") weer.
Ik kijk er wrs over heen.
ivm de mysqli-extensie: ik gebruik deze vrijwel altijd, en ik denk niet dat het dus daar aan ligt.

  1. <?php
  2. $dbc = @mysqli_connect("localhost","root","","breenet") or trigger_error(mysqli_error());
  3. $q = "SELECT * FROM poll_values WHERE poll_ID = '1' ORDER BY pvalue_ID DESC";
  4. $r = mysqli_query($dbc,$q);
  5. $results = mysqli_fetch_array($r,MYSQLI_ASSOC);
  6. do {
  7. echo $results['subject']."<br />";
  8. } while (mysqli_fetch_array($r,MYSQLI_ASSOC));
  9. ?>

12 antwoorden

Gesponsorde links
Offline Wave6 - 01/06/2009 21:28
Avatar van Wave6 PHP beginner Waarschijnlijk door je "do" statement probeer die while is uit te voeren zonder die do...
Offline Raze - 13/06/2009 17:45
Avatar van Raze PHP beginner Ik heb dat geprobeerd, maar dan doet hij hetzelfde. echter haalt hij bij enkel een while-statement er zelfs 1 te weinig op.
Stel dus er zitten 4 polls in:
dan haalt hij bij do-while:
- poll1
- poll1
- poll1
- poll1
(dus wel 4 keer, maar 4 keer de eerste)
en bij while:
- poll1
- poll1
- poll1
Offline kickasgamer - 13/06/2009 18:38 (laatste wijziging 13/06/2009 18:39)
Avatar van kickasgamer PHP ver gevorderde de fout zit allereerst al in de do - while structuur, want het script gaat eerst de code uitvoeren wat na de do staat en gaat dan pas checken op wat bij de while staat dus u statement wordt altijd 1 keer uitgevoerd

en zet eens gewoon
  1. while($result){
  2. ....
  3. }
Offline Raze - 13/06/2009 18:43 (laatste wijziging 13/06/2009 18:47)
Avatar van Raze PHP beginner nope, het werkt nu helemaal niet.
De pagina blijft zelfs laden...  

daarjuist werkte het wel, ik meen het, heel raar.
Het enige dat ik heb aangepast is style="..." eraan toegevoegd.

EDIT: ligt het soms aan de mysqli??? In principe wil ik wel omschakelen, maar ik ben mysqli nu gewoon (hoewel er idd weinig verschil is tussen mysql en mysqli).
Offline Koen - 13/06/2009 21:14
Avatar van Koen PHP expert Doe eens gewoon dit:
  1. while($results = mysqli_fetch_array($r,MYSQLI_ASSOC)) {
  2. // Blaat
  3. }
Offline Raze - 13/06/2009 22:04
Avatar van Raze PHP beginner werkt ook niet 

wat ik ga doen: ik ga mijn wampserver eens opnieuw downloaden.
Dit heeft namelijk altijd gewerkt, ik vind het echt raar dat dat ineens niet meer werkt 
Offline Ibrahim - 14/06/2009 10:53
Avatar van Ibrahim PHP expert Is er onlangs een update op de server uitgevoerd, is er misschien een tabel record die corrupt is ?

Maak eens een dummy tabel aan, doe wat data in, en probeer die data te weergeven. Als de data goed weergegeven wordt, ligt het niet aan de database server. Gebeurt hetzelfde, dan zul je eens contact op moeten nemen met je host.
Offline Raze - 14/06/2009 11:46
Avatar van Raze PHP beginner Het is niet mijn online host (die is pas actief vanaf midden juli) maar mijn localhost die (misschien) corrupt is.

Ik heb op de localhost (wampserver 2) zo'n dummy tabel aangemaakt, data wordt weergegeven maar verkeerd. Ik ga dus wampserver eens opnieuw installeren.
Hopelijk werkt het.
Offline Bertjuh - 14/06/2009 16:31 (laatste wijziging 14/06/2009 16:35)
Avatar van Bertjuh HTML interesse Ligt het niet aan dat je WHERE poll_ID = '1' in je query hebt staan?

Wat ik ook niet begrijp is dat je errors wilt onderdrukken door de @ te gebruiken, maar wel een trigger_error wilt? (misschien weet ik daar dan weer niet genoeg vanaf)

  1. $dbc = mysql_connect("localhost","root","","breenet") or trigger_error(mysql_error());
  2. $result = mysql_query("SELECT * FROM poll_values WHERE poll_ID = '1' ORDER BY pvalue_ID DESC)";
  3.  
  4. while($row = mysql_fetch_assoc($result)) {
  5. echo $results['subject']."<br />";
  6. }
Offline Raze - 14/06/2009 16:35
Avatar van Raze PHP beginner zonder dat werkt het ook niet.
Ik heb een poll (POLL_ID = 1) en dan 4 verschillende opties die allemaal in de kolom POLL_ID de waarde 1 hebben.
Daar kan het volgens mij dus niet aan liggen.
Offline Bertjuh - 14/06/2009 16:36
Avatar van Bertjuh HTML interesse probeer mijn code van hierboven eens?
Offline Raze - 14/06/2009 16:44
Avatar van Raze PHP beginner ja dat werkt maar dat is mysql.
Ik gebruik liever mysqli, omdat ik o.a. heb gelezen dat in PHP 6 mysql zal verdwijnen.

Ik gebruik het ook in veel codes al.
Heb ondertussen XAMPP geinstalleerd btw, maar heb nog geen tijd gehad om het te testen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.231s