login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Groeperen

Offline Frederic - 11/02/2005 11:40
Avatar van FredericPHP ver gevorderde Is het mogelijk om het volgende:
*

-Naam1
-Bericht1
-Naam1
-Bericht2
-Naam1
-Bericht3
-Naam1
-Bericht4
-Naam2
-Bericht1
-Naam2
-Bericht2
-Naam2
-Bericht3
-Naam2
-Bericht4
*
om te vormen in

* -Naam1
-Bericht1
-Bericht2
-Bericht3
-Bericht4
-Naam2
-Bericht1
-Bericht2
-Bericht3
-Bericht4
*
?
Ik lees nu de gegevens in met
  1. <?php
  2. $sql = "SELECT * FROM gastenboek ORDER BY id DESC LIMIT $van, $max";
  3. $resultaat = mysql_query($sql) or die ("Het is mislukt");
  4. echo "<table>";
  5. while ($rij = mysql_fetch_object($resultaat)){
  6. $naam = htmlspecialchars($rij->naam);
  7. $email = htmlspecialchars($rij->email);
  8. $homepage = htmlspecialchars($rij->homepage);
  9. $bericht = htmlspecialchars($rij->bericht);
  10. $datum = htmlspecialchars($rij->datum);
  11. echo "<tr><td width=150 valign=top><b>".$naam."</b><br>";
  12. echo "<em><font size=\"-2\"><a href=\"".$homepage."\" target=\"_blank\">Homepage van ".$naam."<br></a></font></em>";
  13. echo "".$datum."";
  14. echo"</td><td width=410 valign=top>".$bericht."</td>";
  15. } ?></tr></table>

Maar dan wordt voor ieder record een nieuwe tabelrij gemaakt...

18 antwoorden

Gesponsorde links
Offline Thomas - 30/11/1999 00:00
Avatar van Thomas Moderator Je zou eerst een query kunnen maken voor het ophalen van de namen - en met behulp van deze namen een query die de bijbehorende berichten ophaalt.rnAls je het doet zoals hierboven, zul je in elke resultaatrij ook een naam krijgen.
Offline Frederic - 30/11/1999 00:00
Avatar van Frederic PHP ver gevorderde euhm dus eerst naam ophalen hoe dan hoe zeg ik dat ie bijbehorende resultaten moet ophalen, want via GET zal wel niet gaan, ofwel
Offline Rens - 30/11/1999 00:00
Avatar van Rens Gouden medaille

Crew algemeen
Je maakt eerst een while loop, die alleen de namen ophaalt.rnIn die while loop, maak je vervolgens nog een while loop die het bericht ophaalt.rnrn[code]PHPrn$sQuery = SELECT naam FROM tabel;rn$rResult = MySQL_Query($sQuery) or die(MySQL_Error());rnwhile($aFetch = MySQL_Fetch_Assoc($rResult))rn{rn echo Naam BR;rn echo $aFetch['naam'].BR;rn $sQuery = SELECT bericht FROM tabel WHERE naam='.$aFetch['naam'];rn $rResult = MySQL_Query($sQuery) or die(MySQL_Error());rn while($aFetch = MySQL_Fetch_Assoc($rResult))rn {rn echo $aFetch['bericht'].BR;rn }rn}rn[code]rnrnEven een klein voorbeeldje van hoe het zou kunnenD
Offline Frederic - 30/11/1999 00:00
Avatar van Frederic PHP ver gevorderde [code]phprn$sQuery = SELECT naam FROM gastenboek;rn$rResult = mysql_query($sQuery) or die (Het is mislukt);rnwhile($aFetch = mysql_fetch_object($rResult))rn{rn echo Naam BR;rn echo $aFetch['naam'].BR;rn $sQuery = SELECT bericht FROM gastenboek WHERE naam='.$aFetch['naam'];rn $rResult = mysql_query($sQuery) or die (Het is mislukt);rn while($aFetch = mysql_fetch_object($rResult))rn {rn echo $aFetch['bericht'].BR;rn }rn}rn[code] Heb ik dan nu (heb de MySQL_Query veranderd, want nu herkent dreamweaver die wel als functie)rnMaar de output is nurn[quote] NaamrnFredericrnYou have an error in your SQL syntax near ''Naam1' at line1[quote]rnEn Naam1 zal dan wel het eerste zijn wat ie ophaalt zeker... Maar dan loopt het ergens mis
Offline Rens - 30/11/1999 00:00
Avatar van Rens Gouden medaille

Crew algemeen
Ik zie het al...rn[code]naam='.$aFetch['naam'];[code]rnEen ' vergetenrn[code]naam='.$aFetch['naam'].';[code]rnrnDenk dat dat beter werkt;-)
Offline Frederic - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van Frederic PHP ver gevorderde De error is weg, maar nu echo't ie gewoonrn[quote]Naam[quote] en dan niets meer...rnAls ik er rn[code]phprn$sQuery = SELECT naam FROM gastenboek;rn$rResult = mysql_query($sQuery) or die (Het is mislukt);rnwhile($aFetch = mysql_fetch_object($rResult))rn{rn echo Naam BR;rn echo $aFetch-naam.BR;rn $sQuery = SELECT bericht FROM gastenboek WHERE naam='.$aFetch['naam'].';rn $rResult = mysql_query($sQuery) or die (Het is mislukt);rn while($aFetch = mysql_fetch_object($rResult))rn {rn echo $aFetch-bericht.BR;rn }rn}rn[code] van maak echo't ie rnNaamrnNaam1 (dus zonder berichten)
Offline Fenrir - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van Fenrir PHP expert zet er eens error_reporting(E_ALL); boven.rnHeet de kolom in de tabel wel bericht
Offline Frederic - 30/11/1999 00:00
Avatar van Frederic PHP ver gevorderde Ik hebrnerror_reporting(E_ALL); rnvanboven gezet, maar ik krijg geen fouten...
Offline Maarten - 30/11/1999 00:00
Avatar van Maarten Erelid Gebruik geen 2 keer aFetch zou ik zeggen... kies 2 verschillende namen
Offline Fenrir - 30/11/1999 00:00
Avatar van Fenrir PHP expert Staat er iets in de database
Offline Frederic - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van Frederic PHP ver gevorderde Ok, het is uiteindelijkrn[code]phprn$sQuery = SELECT naam FROM gastenboek;rn$rResult = mysql_query($sQuery) or die (Het is mislukt);rnwhile($aFetch = mysql_fetch_object($rResult))rn{rn echo Naam BR;rn echo $aFetch-naam.BR;rn $sQuery = SELECT bericht FROM gastenboek WHERE naam='.$aFetch-naam.';rn $rResult = mysql_query($sQuery) or die (Het is mislukt);rn while($aFetch = mysql_fetch_object($rResult))rn {rn echo $aFetch-bericht.BR;rn }rn}rn[code]rngeworden, en dat werkt wel...rnHij geeft Naam1, en eronder staan de berichten, maar dan stopt ie s Naam2 komt niet
Offline Maarten - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van Maarten Erelid Dat is omdat je 2 keer aFetch gebruikt, de ene overschrijft de anderere... dus kies 2 verschillende namen.rn[code]phprn$sQuery = SELECT naam FROM gastenboek;rn$rResult = mysql_query($sQuery) or die (Het is mislukt);rnwhile($aFetch = mysql_fetch_object($rResult))rn{rn echo Naam BR;rn echo $aFetch-naam.BR;rn $sQueryB = SELECT bericht FROM gastenboek WHERE naam='.$aFetch-naam.';rn $rResultB = mysql_query($sQueryB) or die (Het is mislukt);rn while($aFetchB = mysql_fetch_object($rResultB))rn {rn echo $aFetchB-bericht.BR;rn }rn}rnrn[code]zo bijvoorbeeld...
Offline Fenrir - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van Fenrir PHP expert 1. Controleer met if(mysql_num_rows( of er berichten zijn.rnrn2. Je kunt beter met ID's werken, dat is makkelijker, en als iemand zijn naam wijzigt, krijg je fouten.
Offline Frederic - 30/11/1999 00:00
Avatar van Frederic PHP ver gevorderde [code]phprn$Naam_Query = SELECT naam FROM gastenboek;rn$Naam_Resultaat = mysql_query($Naam_Query) or die (Het is mislukt);rnwhile($Naam_Rij = mysql_fetch_object($Naam_Resultaat))rn{rn echo Naam BR;rn echo $Naam_Rij-naam.BR;rn $Bericht_Query = SELECT bericht FROM gastenboek WHERE naam='.$Naam_Rij-naam.';rn $Bericht_Resultaat = mysql_query($Bericht_Query) or die (Het is mislukt);rn while($Bericht_Rij = mysql_fetch_object($Bericht_Resultaat))rn {rn echo $Bericht_Rij-bericht.BR;rn }rn}rn[code] rnWerkt wel, hij geeft alles weer, maar als het bvb isrnNaam1rnBericht1rnNaam1rnBericht2rnrnDan zal hij 2x zettenrnNaam1rn Bericht1rn Bericht2
Offline numlockrond - 30/11/1999 00:00
Avatar van numlockrond Onbekend het kan ook gewoon met 1 query. Je haalt alle berichten op, gesorteerd op naam (en evt. op datum ofzo). Dan ga je die berichten echoën in een while.rnJe controleert dan elke keer of de naam van het bericht dat je wilt printen gelijk is de naam van het vorige bericht. Als die niet gelijk zijn echo je de naam, anders alleen het bericht.
Offline Frederic - 30/11/1999 00:00
Avatar van Frederic PHP ver gevorderde zou je daar een voorbeeld van kunnen geven
Offline Thomas - 30/11/1999 00:00
Avatar van Thomas Moderator Je hebt toch echt maar 2 queries nodig hoor...
Offline numlockrond - 30/11/1999 00:00
Avatar van numlockrond Onbekend [quote]Werkt wel, hij geeft alles weer, maar als het bvb isrnNaam1rnBericht1rnNaam1rnBericht2rnrnDan zal hij 2x zettenrnNaam1rnBericht1rnBericht2[quote] Dat kun je oplossen met SELECT DISTINCT naam FROM gastenboekrnrnmaar zo kan het ookrn[code]phprnrnje kunt evt. ook nog sorteren op datum, zodat oudstenieuwste bovenaan komenrn$result = mysql_query('SELECT naam, bericht FROM gastenboek ORDER BY naam');rnrnvariabele om de naam van het laatste bericht bij te houdenrn$naam = '';rnrnwhile($rij = mysql_fetch_assoc($result)){rnrn als de naam van dit bericht niet gelijk is aan de naam van het vorige bericht printen we de naam en veranderen we $naamrn if($rij['naam'] != $naam){rnrn echo ($naam = $rij['naam']).'br';rnrn }rnrn bericht weergevenrn echo $rij['bericht'].'br';rnrn}rnrn[code]
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.196s