[php] Array count until 5 kollommen dan nieuwe rij (newbie)

Pagina: 1
Acties:
  • 116 views sinds 30-01-2008

  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01-2025

bluesbrother

Blues Rocks!!!

Topicstarter
Allereerst voor de duidelijkheid:
Ik vraag niet voor een kant en klare oplossing.
Ik wil graag even de juiste richting opgestuurd worden:

Ik heb op php.net gezocht, in de help, GoT en Google.
Maar ik zie geen antwoord op mijn vraag, en die is:

Ik lees een database uit in een array, gaat prima.
Dan heb ik die array en dan wil ik dat deze:
Een rij aanmaakt en in elke kolom een waarde uit de database er in zet.
Dat lukt nog. Maar ik wil dat ie bij 5 kolommen ophoudt en een nieuwe rij begint.
(anders heb ik een hele brede monitor nodig)
Het gaat me om dat tellen. Moet ik voor elke 5 rijen een nieuwe query maken?
Of kan ik dit anders oplossen. Met welke commando's doe ik dat?

mysql_fetch_row ?

ik heb dit al:

/* array uit de database halen gaat goed, dus dat staat er niet bij.
Opmaak van de tabel komt ook wel goed maar

*/

PHP:
4
5
6
7
8
9
10
11
12
13
14
15
16
]
print "<table width=\"80%\"  border=\"1\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">";
print "<tr>";
print "<td width=\"20%%\">";
    while ($row = mysql_fetch_array($jan, MYSQL_NUM)) {
   printf ("<div align=\"center\"><a href=\"$habla\"> $row[0]</a>");
                                     }
print "</td>";
print "<tr>";
print "</tr>";                                   
print "<td><input type=\"submit\" name=\"Submit\" value=\"Submit\"></td>";
print "</tr>";
print "</table>";


Hieraan gekoppeld heb ik nog een vraagje.
Het gaat om een linkpagina waarin men eerst kan kiezen voor een
hoofdcatagorie bijv: "programmeren" en als men daar op klikt krijgt men de keuze uit
een subcatagorie bijv: "php / mysql".
Ook hiervoor geld alleen een richting, geen complete oplossing:
doe ik dat met een formulier achter elke keuzemogelijkheid.
Bouw ik een functie die de waarde van de keuze in een query verwerkt?
Of moet ik dit met een formulier oplossen?
Action = script.php waarde van de keuze meesturen enz.

Hoe zouden jullie dit doen. Ik ben niet bang om wat uit te zoeken en ik heb hier een paar goede boeken liggen maar ik kon niks vinden. Zoals gezegd Een richting is genoeg, rijen doe ik zelf wel. " I will thake it from there".

Thanx
Bluesbrother 8)

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

je wilt dus dit (even voor het gemak vanaf 0 tellen):
code:
1
2
3
 0  1  2  3  4
 5  6  7  8  9
10 11 12 13 14

je zou dus kunnen stellen dat voor elke entry waarvan het nummer deelbaar is door 5 er een nieuwe rij begint. Je kan dan dus ook zeggen dat de restwaarde van een deling door vijf nul moet opleveren ;)

Vergeet niet je laatste cell (met de submitbutton) een colspan mee te geven...

[ Voor 13% gewijzigd door crisp op 20-09-2004 23:14 ]

Intentionally left blank


  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01-2025

bluesbrother

Blues Rocks!!!

Topicstarter
euh...ja? euh...? asperine ... waar heb ik die.
Maar als ik het begrijp, en daar twijfel ik aan, dan zou het betekenen dat als er bijvoorbeeld
2 x 5 rijen zijn en er zijn dan nog 4 entry's over, die laatste 4 niet gezien worden?
(bedankt voor de snelle reactie!!)

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

bluesbrother schreef op 20 september 2004 @ 23:15:
euh...ja? euh...? asperine ... waar heb ik die.
Maar als ik het begrijp, en daar twijfel ik aan, dan zou het betekenen dat als er bijvoorbeeld
2 x 5 rijen zijn en er zijn dan nog 4 entry's over, die laatste 4 niet gezien worden?
(bedankt voor de snelle reactie!!)
Als je een teller mee laat lopen dan ligt het dus aan de waarde van de teller na je while-loop hoeveel lege cellen je nog moet toevoegen om toch een kloppend geheel te krijgen; dat is gewoon een simpel stukje rekenwerk :)

Intentionally left blank


  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01-2025

bluesbrother

Blues Rocks!!!

Topicstarter
Okay, maar voor die teller wat zou je er voor moeten gebruiken.
Ik ben een beetje lost in de hoeveelheid functies.
Moet dat iets worden van een while list binnen een foreach?
Ongeveer? 8)

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

PHP:
1
2
3
4
5
6
7
8
9
10
11
<table><tr>
<?
for ($i = 1; $i <= $aantalelementeninarray; $i++) {
  echo '<td>'.$arr[$i - 1].'</td>';
  if ($i % 5 == 0)
    echo '</tr><tr>';
}
for ($j = $i; $j <= 5; $j++)
  echo '<td></td>';
echo '</tr></table>';
?>

Zoiets? Globaal dan?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 19:42

ripexx

bibs

Een while() is al een loop, dus deze wordt x keer herhaald ;) Als je nu gewoon een var op 0 zet en dan bij elke loop er een bij op tellen ($i++) ofzo ;)

buit is binnen sukkel


  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01-2025

bluesbrother

Blues Rocks!!!

Topicstarter
Zoals gezegd, ik ben een newbie dus ik zal even nodig hebben om dit te begrijpen.
Maar ik heb nu huiswerk. Dat je dat zo even uit je mouw schud!!
Dat duurt nog wel even voor ik zo ver ben.
Ik heb vannacht in ieder geval wat te doen.
Thanx

8) = heel erg :*)

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

bluesbrother schreef op 20 september 2004 @ 23:20:
Okay, maar voor die teller wat zou je er voor moeten gebruiken.
Ik ben een beetje lost in de hoeveelheid functies.
Moet dat iets worden van een while list binnen een foreach?
Ongeveer? 8)
een while is genoeg; in pseudo-code:
code:
1
2
3
4
5
6
7
8
9
10
echo '<table>';
echo '<tr>';
$teller = 0;
while ($row = fetch_array() ) {
  echo '<td'> . $row['whatever'] . '</td>';
  $teller++;
  if (rest($teller/5) == 0) echo '</tr><tr>';
}
// bepaal hoeveel td's je nog moet schrijven aan de hand van waarde $teller
echo '</tr></table>';

Intentionally left blank


  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01-2025

bluesbrother

Blues Rocks!!!

Topicstarter
Ik heb huiswerk zoals gezegd. Maar waar tel je de rijen nu mee?
Doet dat fetch_array al voor je. Zolang die gevuld word is het nog niet op.?
Of zoiets. Of heb ik nog zoiets nodig als:
PHP:
4
mysql_fetch_row

BTW, over mijn tweede vraag, heb je daar ook iets voor.??

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 19:42

ripexx

bibs

Download het php manual eens en dan kan je per onderwerp de standaard functies per groep bekijken. Hier wat voorbeelden:Daar leer je meer van dan hier kant en klare code te gaan zitten over tikken.

[ Voor 13% gewijzigd door ripexx op 20-09-2004 23:45 ]

buit is binnen sukkel


  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01-2025

bluesbrother

Blues Rocks!!!

Topicstarter
De php manual heb ik altijd bij de hand.
En probeer ook veel dingen uit.
Met welke functie krijg ik welke waarde terug. enz.
Maar het tellen van rijen in een tabel, daar dacht ik mysql_fetch_row voor te gebruiken.
Maar dat lukte me niet. Als ik zie wat crisp gemaakt heeft komt het er ook helemaal niet in voor. Ik propbeer nu te doorgronden hoe het werkt. Vandaar mijn vragen.
Maar ik probeer zo veel mogelijk zelf op te lossen.
Maar soms kan je een hele middag en avond aan het prutsen zijn en er gewoon niet uitkomen. Ik heb boeken, websites en zoekmachines geraadpleegd.
Ik vond stukjes van wat ik nodig heb, maar ik krijg het overzicht niet.
Hoe de puzzel in elkaar past is me (nog) niet geheel duidelijk.
Maar ik heb nog een hele nacht voor mijn huiswerk.
Nee ik ga toch :z en morgen er weer fris tegen aan.

greetz 8)

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

bluesbrother schreef op 20 september 2004 @ 23:53:
Maar dat lukte me niet. Als ik zie wat crisp gemaakt heeft komt het er ook helemaal niet in voor. Ik propbeer nu te doorgronden hoe het werkt. Vandaar mijn vragen.
In het voorbeeld van crisp wordt er een variabele $teller bijgehouden. De conditie waaraan de while moet voldoen houdt in dat er "zolang er rijen in de recordset zitten", de loop moet worden uitgevoerd. Vervolgens wordt de modulus (die de rest bij deling teruggeeft) tussen teller en 5 berekend, waarmee bepaald wordt of er een nieuwe <tr> moet beginnen.

NOFI, maar als je dit niet snapt heb je gewoonweg niet lang genoeg doorgebracht met het bekijken van tutorials, want dit komt in zowat elke beginnerstutorial wel voor, afgezien van het opdelen in kolommen.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 19:42

ripexx

bibs

bluesbrother schreef op 20 september 2004 @ 23:53:
De php manual heb ik altijd bij de hand.
Als je dat dan ook leest ;) , de bovenstaande linkjes geven een Nederlandse handleiding met een kleine uitleg per functie. Dat moet toch wel te volgen zijn, anders moet je een boek kopen en wat voorbeelden zelf nabouwen, maar dan stap voor stap zodat je de verschillen en toegevoegde waarde van bepaalde zaken kan zien. :)
En probeer ook veel dingen uit.
Met welke functie krijg ik welke waarde terug. enz.
Maar het tellen van rijen in een tabel, daar dacht ik mysql_fetch_row voor te gebruiken.
Als je in het manual had gekeken had je snel genoeg gezien dat dat nou net niet de functie is die je moet hebben. Je kan natuurlijk net zolang alle mysql functie proberen todat je de juiste hebt maar iets met aantal of tellen zou wel handig kunnen zijn ;)
Maar dat lukte me niet. Als ik zie wat crisp gemaakt heeft komt het er ook helemaal niet in voor. Ik propbeer nu te doorgronden hoe het werkt. Vandaar mijn vragen.
Crisp leverd pseudo code aan, hiermee kan je dus zien hoe je zoiets kan oplossen. Hoe je dat dan in php doet is voor jouw om te leren. Ik kan het hier zo neer zetten maar dan doe ik lekker niet :P Als je wil programmeren dan moet je het gewoon proberen.
Maar ik probeer zo veel mogelijk zelf op te lossen.
Maar soms kan je een hele middag en avond aan het prutsen zijn en er gewoon niet uitkomen. Ik heb boeken, websites en zoekmachines geraadpleegd.
Nou met het online php manual had je hier toch een aardig eind mee geholpen. Maar leren kost veel tijd, heelveel tijd :)
Ik vond stukjes van wat ik nodig heb, maar ik krijg het overzicht niet.
Hoe de puzzel in elkaar past is me (nog) niet geheel duidelijk.
Maar ik heb nog een hele nacht voor mijn huiswerk.
Nee ik ga toch :z en morgen er weer fris tegen aan.
greetz 8)
Tsja, programmeren is blijven leren en veel doen. En dan je eigen fouten oplossen en dat kan echt nachten duren. En dat kan zelfs een ";" zijn :X Maar daar zal je nog wel achterkomen. ;)

buit is binnen sukkel


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-05 23:07

.oisyn

Moderator Devschuur®

Demotivational Speaker

Kom op, dit gaat nergens over. Huiswerkvragen zijn niet verboden, maar dit is toch zo basic, het hoort simpelweg gewoon niet thuis op GoT. Als je dit niet snapt moet je bij je docent zijn, niet bij ons.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.