Vraag & Antwoord

Webprogrammeren & scripting

bgcolor dynamisch m.b.v. mysql-variabele

10 antwoorden
  • In een tabel wil ik graag dat de achtergrondkleur van een cel bepaald wordt door een uit de database gehaalde variabele. De (hexadecimale) kleurcode wordt d.m.v. een formulier in de db gezet. Het lukt me niet om (met PHP) deze variabele in de outputtabel te gebruiken. Inputcode:[code:1:1e1e80f832]<option value="#ff3300">blabla</option>[/code:1:1e1e80f832] Output:[code:1:1e1e80f832]for ($i=0;$i<mysql_num_rows($resultaat);$i++) { $row_wijz = mysql_fetch_row($resultaat); echo(" <tr> <td bgcolor='"$row_wijz[5]'">$row_wijz[1] $row_wijz[2]</td> <td bgcolor='"$row_wijz[5]'">$row_wijz[3]</td> <td bgcolor='"$row_wijz[5]'">$row_wijz[4]</td> </tr> "); } [/code:1:1e1e80f832] Iemand een idee?
  • er klopt iets niet in het afbreken van je string of in het concateneren van de afzonderlijke delen ('t is maar hoe je het uitlegt). bovendien vind ik de for() constructie niet echt geweldig (maar da's persoonlijk). onderstaande zou het beter moeten doen (niet getest overigens) [code:1:153fca47c0] while ($row_wijz = mysql_fetch_row($resultaat)) { echo " <tr> <td bgcolor='", $row_wijz[5], "'>", $row_wijz[1], " ", $row_wijz[2], "</td> <td bgcolor='", $row_wijz[5], "'>", $row_wijz[3], "</td> <td bgcolor='", $row_wijz[5], "'>", $row_wijz[4], "</td> </tr> "; } [/code:1:153fca47c0]
  • 1) Heb je de query getest (komt er dus wel wat uit)? 2) Volgens mij is je code ook niet helemaal goed, je sluit tijdelijk de echo af en pompt er dan meteen een variabele in, daar moeten toch echt punten of komma's tussen...[code:1:5883a970ea]<td bgcolor='" . $row_wijz[5] . "'>" . $row_wijz[1] . $row_wijz[2] . "</td>[/code:1:5883a970ea] Daarnaast staan er ook nog wat ' en " op de verkeerde plaats (die hierboven wel goed staan (denk ik ;)). [edit]Shit, net te laat ;)[/edit]
  • Annie, bedankt voor je reactie. 't werkt alleen niet.. :cry: [quote:4ee2c46322="Bill Gates"]1) Heb je de query getest (komt er dus wel wat uit)?[/quote:4ee2c46322] Ja, alles werkt, behalve de bgcolor. [quote:4ee2c46322="Bill Gates"]Daarnaast staan er ook nog wat ' en " op de verkeerde plaats (die hierboven wel goed staan (denk ik ;)). [/quote:4ee2c46322] Tiepfoutje, had ik al hersteld, maar zonder resultaat.
  • Misschien handig als je je huidige code ook even plaatst? Daarnaast zou ik je query wel eens willen zien en dan vooral welke kolummen je ophaalt...
  • Tja, geloof het of niet maar deze werkt wel!! :P [code:1:d507e7adbc]for ($i=0;$i<mysql_num_rows($resultaat);$i++) { $row_wijz = mysql_fetch_row($resultaat); echo(" <tr> <td bgcolor=' $row_wijz[5] '> $row_wijz[1] $row_wijz[2]</td> <td bgcolor=' $row_wijz[5] '> $row_wijz[3] </td> <td bgcolor=' $row_wijz[5] '> $row_wijz[4] </td> </tr> "); } [/code:1:d507e7adbc] Toch weer simpeler dan ik dacht...
  • Toch een probleem met de ", ' en de . jes enzo dus ;) Je moet er alleen wel rekening mee houden dat de oplossing die je nu hebt traag is... Ik zal even een url zoeken waarin wat benchmarks staan... Hier dus: http://www.webgoeroe.net/item/117 en dan met name pagina 5. Echt iets om serieus rekening mee te houden vind ik.
  • [quote:d441ac1a2a="Bill Gates"] Je moet er alleen wel rekening mee houden dat de oplossing die je nu hebt traag is... [/quote:d441ac1a2a] Suggestie voor een betere oplossing? Overigens geloof ik niet, na het artikel gelezen te hebben, dat voor mijn (relatief beperkte) toepassing de performance een probleem is. Zoals in het artikel ook vermeld, is het parsen meestal niet de bottleneck als het om snelheid gaat. [quote:d441ac1a2a="Annie"]bovendien vind ik de for() constructie niet echt geweldig (maar da's persoonlijk). [/quote:d441ac1a2a] Heb je hier misschien ook argumenten voor?
  • De while loop is gewoon een kortere notatie en komt dus wat netter over (vind ik dan). Wat betreft het eerste punt:[code:1:e2445656b6]<?php while($row_wijz = mysql_fetch_row($resultaat)) { echo(" <tr> <td bgcolor='" . $row_wijz[5] . "'>" . $row_wijz[1] . " " . $row_wijz[2] . "</td> <td bgcolor='" . $row_wijz[5] . "'>" . $row_wijz[3] . "</td> <td bgcolor='" . $row_wijz[5] . "'>" . $row_wijz[4] . "</td> </tr>"); } ?>[/code:1:e2445656b6]
  • de oplossing van gates scheelt een factor vijf. Te veel om te laten liggen lijkt mij, ook bij kleine toepassingen. Ik gebruikte ook altijd klakkeloos vars tussen " "...dat wordt hevig hercoden...:(

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.