Ik ben bezig met een raad-script, maar hij haalt op een of andere manier de dingen die ik invul niet op.. in mijn database staan 2 wedstrijden, en die haalt hij uit de database en schrijft hij op het scherm, zodat ze die kunnen raden. Maar als ik in de 1e wedstrijd ga raden, dan leest hij de uitslagen die ik invul niet, maar doe ik het in de 2e doet hij het wel.. Heel vaag vind ik dit.
De namen van de input velden zijn gelijk. Geef de thuis en uit velden andere namen (bijvoorbeeld thuis1/thuis2, uit1/uit2) dan zou het wel moeten lukken.
Als ik naar de HTML kijk op je pagina, dan zie ik dit:
eerste wedstrijd:
<input type="text" style="width:50px;" name="thuis1">
<input type="text" style="width:50px;" name="thuis2">
tweede wedstrijd
<input type="text" style="width:50px;" name="thuis1">
input type="text" style="width:50px;" name="thuis2">
de twee velden hebben dus dezelfde naam en daarmee krijg je in je $_POST array maar twee element te zien (thuis1 en thuis2) en niet vier zoals je zou willen (lijkt mij).
Zorg dus dat alle vier de velden unieke namen hebben dan zou je ze alle vier ook in je POST array moeten krijgen.
Mag ik nog wat tips geven, Jeremy/Pietje Akkers. het zou fijn zijn als je er echt eens wat mee deed. Dit maakt je script een stuk efficiënter en logischer.
1)if(isset($_POST['submit'])) {
Dit is niet een goede manier, niet elke browser gaat er goed mee om.
Gebruik liever if($_SERVER['REQUEST_METHOD']=="POST") {
2) Overschrijf geen variabelen, je kan prima je $_POST-variabelen (met beveiliging van mysql_real_escape_string()) gebruiken in je query.
3) Pas goede foutafhandeling toe. Waarom zou je een script direct willen laten stoppen? Stel dat er een functie komt die de laadtijd meet, of de statistieken verwerkt. Die zal dan ook niet worden geladen, en je zit tevens met corrupte HTML, wat een gebruiker ook niet mooi zou vinden. Dus gebruik gewoon bij queries netjes een if-else afhandeling, en verban die die() naar het kerkhof....
4) variabelen horen buiten quotes.
<?php echo "Dit is een string met een ".$variabele." welke buiten quotes staat.";?>
Zie je dat je code een stuk beter leesbaarder is, en dat je direct ziet waar er variabelen staan? Tevens is dit ook net weer een tikkeltje sneller.
Ik hoop dat je nu zeker wat met deze tips gaat doen. Je maakt je eigen script een hiermee een stuk efficiënter en logischer, waar je zeker veel profijt van zal hebben.
Print deze post anders eens uit, en hang het boven je monitor, om je er aan te herinneren, als je anders gewend bent.
Erwin, ja dat klopt. Ik wil graag alles apart hebben, maar ik weet niet hoe ik dat doe, want hij haalt ze uit mijn database, en straks komen er nog veel meer bij. dus hoe moet ik het dan doen?
Ja, -aar- dat klopt. daar moet ik op letten. Heb je ook nog een antwoord op mijn probleem?
Het antwoord staat in mijn vorige post, ik weet niet wat je verder nog nodig hebt... Zoals ik zeg, zorg dat alle input velden aparte namen hebben en je kan het gewoon uitlezen uit $_POST array zodra er op de knop geklikt wordt.
Dus als je je input een naam "thuis1" geeft, dan komt dat in de $_POST te staan als $_POST['thuis1']. etc etc etc
En dan met de verder opmerkingen van Aar moet het wel goed kunnen komen....
Ik heb in mijn database wedstrijden staan, en die worden dus steeds meer. Nu wil ik die uitlezen op het scherm, en dan kunnen mensen raden wat het word. Maar de inputs krijgen dus allemaal één name, en dan haal ik dus inderdaad niet alle dingen op. Dus moeten ze allemaal een andere name krijgen, maar hoe ga ik doe dat doen, want de wedstrijden zitten in een while lus.
Ik begrijp alleen niet helemaal wat $row['wedstrijd1'] en $row['wedstrijd2'] erin doen, maar dat is in dit geval puur copy-paste van mij natuurlijk, stond al in jouw code.
Sorry, maakte een foutje en toch nog een bij het verbeteren. Bovenstaande zou volgens mij redelijk het goede moeten zijn...