1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php foreach ($_POST['WThuisploeg'] as $key=>$WThuisploeg) { } foreach ($_POST['WUitploeg'] as $key=>$WUitploeg) { } foreach ($_POST['ScoreThuis'] as $key=>$ScoreThuis) { } foreach ($_POST['ScoreUit'] as $key=>$ScoreUit) { } $sql1 = ("UPDATE Wedstrijden SET WScoreThuis='".$ScoreThuis."', WScoreUit='".$ScoreUit."' WHERE WThuisploeg='".$WThuisploeg."' AND WUitploeg='".$WUitploeg."' "); $invoer = mysql_query($sql1) or die (mysql_error()); ?> |
Omdat je foreach leeg is en je query dus in de foreach moet. Nu loopt hij door de array heen, doet niks, en gebruikt na de hele loop de laatste waarden uit de array voor een enkele update.quote:Op woensdag 20 april 2011 16:44 schreef Feyenoordlife het volgende:
[ code verwijderd ]
Waarom wordt nu alleen de laatste rij in mijn database geüpdate? Als ik de array uitlees klopt alles wel gewoon.
Wat is er met die rare indenting van je sluitende brackets? Op dit moment sluiten je foreaches voor ze uberhaupt iets hebben gedaan. Ik snap niet helemaal wat je bedoeling is.quote:Op woensdag 20 april 2011 16:44 schreef Feyenoordlife het volgende:
[ code verwijderd ]
Waarom wordt nu alleen de laatste rij in mijn database geüpdate? Als ik de array uitlees klopt alles wel gewoon.
De $_POST vars zijn inderdaad arrays. En de inspringing zal ik even opnieuw doen, wordt het iets overzichtelijker.quote:Op woensdag 20 april 2011 16:49 schreef Luchtkoker het volgende:
[..]
Wat is er met die rare indenting van je sluitende brackets? Op dit moment sluiten je foreaches voor ze uberhaupt iets hebben gedaan. Ik snap niet helemaal wat je bedoeling is.
-edit ah ik snap het al. Je probeert je POST vars door te loopen in die foreaches te initialiseren in vars, en dan die query elke keer uit te voeren? Dan moet je inderdaad zoals de poster boven mij zegt je query in de for-loop zetten. Op dit moment loopt hij door alles, en zodra hij dus de loops uit komt staan $WThuisploeg, $WUitploeg etc allemaal op hun laatste waarden geintializeerd (vlak voordat ze de loop uit gingen dus).
Als je het voor elke combo wilt moet je ze niet sequentieel plaatsen, maar genest.
-edit2- Sowieso, zijn die $_POST vars arrays?
Zolang je geen associaties hebt in je array tussen welke scores bij welke ploegen horen houd je dat probleem.quote:Op woensdag 20 april 2011 16:55 schreef Feyenoordlife het volgende:
[..]
De $_POST vars zijn inderdaad arrays. En de inspringing zal ik even opnieuw doen, wordt het iets overzichtelijker.
Wat ik op dit moment gedaan heb is de sluit-accolades onder de query gezet, en dit levert als resultaat op dat de laatst ingevulde uitslag in elke rij komt te staan.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php foreach ($_POST['WThuisploeg'] as $key=>$WThuisploeg) { foreach ($_POST['WUitploeg'] as $key=>$WUitploeg) { foreach ($_POST['ScoreThuis'] as $key=>$ScoreThuis) { foreach ($_POST['ScoreUit'] as $key=>$ScoreUit) { $sql1 = ("UPDATE Wedstrijden SET WScoreThuis='".$ScoreThuis."', WScoreUit='".$ScoreUit."' WHERE WThuisploeg='".$WThuisploeg."' AND WUitploeg='".$WUitploeg."' "); $invoer = mysql_query($sql1) or die (mysql_error()); } } } } ?> |
Dat gedeelte had ik ondertussen ja. Nu moet ik er dan volgens mij nog een associatieve array van maken.quote:Op woensdag 20 april 2011 17:05 schreef lifeblind het volgende:
volgens mij kom je al een heel stuk verder als je dit probeert:
[ code verwijderd ]
Helaas, ik moet de plaatjes behouden als PNG! maar hoopte dat er een oplossing was om er toch een beetje compressie overheen te gooien, zoals photoshop en andere paketten ook doen!quote:Op dinsdag 19 april 2011 23:35 schreef GlowMouse het volgende:
png is geen lossy compressie; ik zou kijken naar http://nl.php.net/manual/en/function.imagick-setimageformat.php
Eensch, maak 2 classes aan in CSS en geef ze beiden een andere achtergrondkleur. Weet niet waar je mee werkt, maar ik zou in je loop een counter doen die gewoon elke keer optelt. Maak een variabele $i = 0; en na elke loop doe je $i++; Vervolgens kijk je in de regel of het getal even is of oneven (% modulo operator) en aan de hand daarvan geef je de juiste class mee aan je div/tabel/whatever...quote:Op woensdag 20 april 2011 22:01 schreef Light het volgende:
Geef ze in PHP om en om een class mee, en style die vervolgens in css met verschillende (achtergrond)kleuren.
Het is trouwens ook volledig in css uit te werken, bedenk ik me. Dan heb je in php helemaal niets nodig met extra classes. Alleen jammer dat de css-uitwerking niet in alle browsers (lees: IE) werkt.quote:Op woensdag 20 april 2011 22:38 schreef mafkees01 het volgende:
[..]
Eensch, maak 2 classes aan in CSS en geef ze beiden een andere achtergrondkleur. Weet niet waar je mee werkt, maar ik zou in je loop een counter doen die gewoon elke keer optelt. Maak een variabele $i = 0; en na elke loop doe je $i++; Vervolgens kijk je in de regel of het getal even is of oneven (% modulo operator) en aan de hand daarvan geef je de juiste class mee aan je div/tabel/whatever...
1 2 3 4 5 6 | tr:nth-child(2n+1) { background-color: blue; } tr:nth-child(2n) { background-color: red; } |
Is dat CSS3 ofzo? Ik ken het namelijk helemaal niet (niet dat ik zó'n CSS expert benquote:Op woensdag 20 april 2011 22:46 schreef Light het volgende:
[..]
Het is trouwens ook volledig in css uit te werken, bedenk ik me. Dan heb je in php helemaal niets nodig met extra classes. Alleen jammer dat de css-uitwerking niet in alle browsers (lees: IE) werkt.
Voorbeeld:
[ code verwijderd ]
In plaats van 2n+1 mag je ook odd schrijven, en in plaats van 2n mag je ook even schrijven. Maar da's meer iets voor in het css-topic.
quote:One saving grace here is that if you are using jQuery, which supports all CSS selector including :nth-child, the selector will work, even in Internet Explorer.
Dat is CSS3, ja. Leuk speelgoed ookquote:Op woensdag 20 april 2011 23:51 schreef Luchtkoker het volgende:
[..]
Is dat CSS3 ofzo? Ik ken het namelijk helemaal niet (niet dat ik zó'n CSS expert ben)
Graceful degradation. Styles moet je toewijzen met CSS, niet met PHP. Werkt het niet, dan maar met een javascript-achtige fallback. Sowieso voegen dat soort operaties nou niet bepaald extreem veel overhead toe, zeker niet als je jQuery uberhaupt al actief hebt.quote:Op donderdag 21 april 2011 00:14 schreef GlowMouse het volgende:
Ja, achteraf met JS wat classes toevoegen. Zullen die oude browsers blij van worden. Ga nou geen oplossing aandragen voor een probleem dat er niet is.
idd, aangezien het maar één ifstatement is valt het echt reuze mee.quote:Op donderdag 21 april 2011 08:59 schreef mstx het volgende:
Ik zou alsnog voor de PHP oplossing gaan ((on)even regels een andere class geven). Werkt in alle browsers en je hebt geen javascript nodig. Qua PHP performance maakt het ook geen reet uit, tenzij je 1 miljoen regels hebt maar dan is javascript nog veel trager.
1 2 3 | <?php $className = ( (($i % 2) == 0) === true ) ? 'classX' : 'classY'; ?> |
En op een site/pagina die zonder javascript moet werken waar je wel die stijlen wilt hebben? Nooit er van uit gaan dat iedereen javascript aan heeft staan. Sowieso dit soort dingen d.m.v. javascript toevoegen is een beetje overkill.quote:Op donderdag 21 april 2011 08:18 schreef Intrepidity het volgende:
[..]
Graceful degradation. Styles moet je toewijzen met CSS, niet met PHP. Werkt het niet, dan maar met een javascript-achtige fallback. Sowieso voegen dat soort operaties nou niet bepaald extreem veel overhead toe, zeker niet als je jQuery uberhaupt al actief hebt.
Zeker op drukke websites is het niet verstandig dat soort duidelijke client-side operaties aan de server over te laten.
quote:Op donderdag 21 april 2011 09:24 schreef Pakspul het volgende:
[..]
idd, aangezien het maar één ifstatement is valt het echt reuze mee.
[ code verwijderd ]
En that's it
1 2 3 | <?php $className = $i % 2 === 0 ? 'classX' : 'classY'; ?> |
Ik ben van mening dat dit soort dingen een toevoeging zijn en dat graceful degradation hier dus op zijn plaats is. Mensen die JS uit hebben staan zijn er nauwelijks (en moeten tevens dood, want paranoide), en die zien dan geen zebra-striping in een tabel, big deal.quote:Op donderdag 21 april 2011 09:28 schreef lifeblind het volgende:
[..]
En op een site/pagina die zonder javascript moet werken waar je wel die stijlen wilt hebben? Nooit er van uit gaan dat iedereen javascript aan heeft staan. Sowieso dit soort dingen d.m.v. javascript toevoegen is een beetje overkill.
Nog een tipje m.b.t. dit, als je een template-engine zoals smarty gebruikt, kun je dit min of meer automatisch laten doen. Als je dan je data in je template zet, kun je gewoon aangeven welke class die om de x-aantal iterations moet doen, werkt veel simpeler. Op deze manier hou je ook logica van je code (data ophalen, er iets leuks mee doen etc.) gescheiden van je weergave (want dat doe je allemaal in je template).
quote:Op donderdag 21 april 2011 12:17 schreef mafkees01 het volgende:
[..]
[ code verwijderd ]nog korter...
1 2 3 | <?php $className = ($i % 2) ? 'classX' : 'classY'; ?> |
Moet je alleen X en Y omdraaien.quote:Op donderdag 21 april 2011 12:35 schreef GlowMouse het volgende:
[..]
[ code verwijderd ]nog korter...
En dingen als drempelsvrij en dergelijke zeggen je niets? Sowieso, als je miljoenen hits per dag te verwerken krijgt moet je meer aan caching enzo denken, als je dan iedere keer de pagina's serverside opnieuw gaat opbouwen doe je sowieso al iets niet goed.quote:Op donderdag 21 april 2011 12:33 schreef Intrepidity het volgende:
[..]
Ik ben van mening dat dit soort dingen een toevoeging zijn en dat graceful degradation hier dus op zijn plaats is. Mensen die JS uit hebben staan zijn er nauwelijks (en moeten tevens dood, want paranoide), en die zien dan geen zebra-striping in een tabel, big deal.
Gewoon nooit dat soort weergavezaken serverside laten afhandelen. Werkt leuk en snel, maar als je een paar miljoen hits per dag te verwerken krijgt en je hebt overal dat soort truucjes in je code zitten kunnen al die cycles al snel een hele server schelen. Niet dat ik verwacht dat je je daar direct mee bezig houdt, maar verkeerde dingen aanleren is nooit een goed plan.
Zebrastriping op een braillemachine, goed idee! Ik snap je punt, maar ik zit in de B2B-hoek, en daar is dat eigenlijk geen prioriteit, maar vooruit.quote:Op donderdag 21 april 2011 12:41 schreef lifeblind het volgende:
[..]
En dingen als drempelsvrij en dergelijke zeggen je niets? Sowieso, als je miljoenen hits per dag te verwerken krijgt moet je meer aan caching enzo denken, als je dan iedere keer de pagina's serverside opnieuw gaat opbouwen doe je sowieso al iets niet goed.
Zo zie je maar, waarom moeilijk doen in CSS als het zo prima kanquote:Op donderdag 21 april 2011 12:35 schreef GlowMouse het volgende:
[..]
[ code verwijderd ]nog korter...
Omdat CSS er voor bedoeld is, dat is waarom.quote:Op donderdag 21 april 2011 12:47 schreef mafkees01 het volgende:
[..]
Zo zie je maar, waarom moeilijk doen in CSS als het zo prima kan
Het oog wil ook watquote:Op donderdag 21 april 2011 12:17 schreef mafkees01 het volgende:
[..]
[ code verwijderd ]nog korter...
Ach, als je er 10 regels code voor nodig hebt en 2 loops geef ik je gelijk, maar als de oplossing zo simpel is zie ik in waarom je het niet met PHP zou oplossen. Om nog maar niet te beginnen over het feit dat de CSS oplossing erg browser afhankelijk is...quote:Op donderdag 21 april 2011 12:47 schreef Intrepidity het volgende:
[..]
Omdat CSS er voor bedoeld is, dat is waarom.
Misschien ben ik wel een ongelofelijk zeikende purist hoor, maar PHP is afaik een serverside-taal en dus niet bedoeld voor dergelijke weergavezaken. Ik gebruik PHP om semantisch juiste HTML uit te poepen (en overal lukraak css-klassen aanhangen valt daar imo niet onder), en hoe dat geïnterpreteerd wordt en uiteindelijk weergegeven wordt is het pakkie aan voor de clientside-talen zoals css en javascript.quote:Op donderdag 21 april 2011 12:58 schreef mafkees01 het volgende:
[..]
Ach, als je er 10 regels code voor nodig hebt en 2 loops geef ik je gelijk, maar als de oplossing zo simpel is zie ik in waarom je het niet met PHP zou oplossen. Om nog maar niet te beginnen over het feit dat de CSS oplossing erg browser afhankelijk is...
1 2 3 | <input type="text" name="Artikelnummer[1]"> <input type="text" name="Artikelnummer[2]"> <input type="text" name="Artikelnummer[3]"> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?php $sql="SELECT Artikelnummer, Naam, Prijs FROM Producten WHERE Artikelnummer = '".$q."'" ; $result = mysql_query($sql)or die(mysql_error()); $rows = mysql_num_rows($result); If($rows == 0) { echo "<td class='productnaam'>"; echo "Nummer niet gevonden"; echo "</td>"; echo "<td class='prijs'>"; echo ""; echo "</td>"; } else { $fetch = mysql_fetch_assoc($result); echo "<td class='productnaam'>"; echo $fetch['Naam']; echo "</td>"; echo "<td class='Prijs'>"; echo "€ "; echo $fetch['Prijs']; echo "</td>"; } ?> |
quote:Op dinsdag 26 april 2011 14:00 schreef afro het volgende:
Weet iemand hoe ik dit moet gaan doen?
Ik heb tien input velden, zoals hieronder, deze moeten allemaal de database doorzoeken en aparte resultaten krijgen. Nu is het probleem dat alleen de eerste werkt (logisch).
[ code verwijderd ]
PHP
[ code verwijderd ]
Hoe zorg ik ervoor dat het voor elke input apart word "verwerkt".
1 2 3 4 5 | <?php foreach ( $_POST['Artikelnummer'] as $k=>$v ) { // hier de code die bij elk veld in de database gaat zoeken, $v is de waarde van het veld en $k de index } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <form method="post"> <textarea name="Artikelnummer[]"></textarea> <textarea name="Artikelnummer[]"></textarea> <input type="submit"> </form> <?php foreach($_POST['Artikelnummer'] as $Artikelnummer) { include 'Jalalalala.php'; @$sql="(SELECT Artikelnummer, Naam, Prijs FROM producten WHERE Artikelnummer =('$Artikelnummer'))"; $result = mysql_query($sql)or die(mysql_error()); $rows = mysql_num_rows($result); If($rows == 0) { echo "<td class='productnaam'>"; echo "Nummer niet gevonden"; echo "</td>"; echo "<td class='prijs'>"; echo ""; echo "</td>"; } else { $fetch = mysql_fetch_assoc($result); echo "<td class='productnaam'>"; echo $fetch['Naam']; echo "</td>"; echo "<td class='Prijs'>"; echo "€ "; echo $fetch['Prijs']; echo "</td>"; } } ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |