Ik heb een code proberen te maken, waarbij een admin uit een dropdownlijst steeds kan kiezen tussen 2 teams en hun verdiende punten (met alleen de volgende combinaties: 3-0 , 2-2, 1-1 en 0-3).

De bedoeling is dus dat als er een post form verzonden is, dat dan de gevens in de database juist worden geupdated, maar dat is hier enkel het geval voor score1 = 0, score2 = 3 en omgekeerd, dus zodra beide scores gelijk zijn, voert hij nog steeds 1ste of 2de if uit ipv 3de of 4de en toch echo'ed/geeft hij voor score1 en score2 een 1 of een 2 als dat gekozen wordt


<?php

incude_once('config.php');

if(isset($_POST['punten'])){

 $team1=$_POST['team1'];
 $score1=$_POST['score1'];
 $team2=$_POST['team2'];
 $score2=$_POST['score2'];

 if($score1==0 && $score2==3){

  $res1=mysql_query("UPDATE gebruikers 
                     SET lost=lost+1 
                     WHERE nickname=".$team1."");

  $res2=mysql_query("UPDATE gebruikers 
                     SET won=won+1, totalpoints=totalpoints+3 
                     WHERE nickname=".$team2."");

 }elseif($score1==3 && $score2==0){

  $res3=mysql_query("UPDATE gebruikers 
                     SET won=won+1, totalpoints=totalpoints+3        
                     WHERE nickname=".$team1."");

  $res4=mysql_query("UPDATE gebruikers 
                    SET lost=lost+1 
                    WHERE nickname=".$team2."");

 }elseif($score1==1 && $score2==1){

  $res5=mysql_query("UPDATE gebruikers 
                     SET tie=tie+1, totalpoints=totalpoints+1 
                     WHERE nickname=".$team1."");

  $res6=mysql_query("UPDATE gebruikers 
                    SET tie=tie+1, totalpoints=totalpoints+1
                    WHERE nickname=".$team2."");

 }elseif($score1==2 && $score2==2){

  $res7=mysql_query("UPDATE gebruikers 
                     SET tie=tie+2, totalpoints=totalpoints+2  
                     WHERE nickname=".$team1."");

  $res8=mysql_query("UPDATE gebruikers 
                     SET tie=tie+2, totalpoints=totalpoints+2 
                     WHERE nickname=".$team2."");

 }

}else{ 
 //post formulier 
}

?>
Dat doe jij ja, maar ik gebruik overal enkele quotes. Bij zowel PHP als bij SQL.
@pqFrank:
De tweede manier gebruik je natuurlijk ook niet, dat wordt uiteraard zoiets:

<?php
echo "dit is een var2: " . $var2;
?>

Allereerst gebruik je dan netjes de string concatenation operator, namelijk de punt, die bedoelt is om meerdere strings samen te voegen. Ten tweede leer je jezelf alvast een goede basis omdat in programmeertalen je echt dubbele quotes voor strings moet gebruiken.

@GaMer13
Wat bedoel je hier precies mee te zeggen? Kom vooral met argumenten om me te overtuigen =).
@Hylke: Wie zegt dat jij nooit gewoon een stukje tekst $bedenkMaarEenNaam in jouw string hebt staan? En dit kan heel goed dezelfde tekst/naam zijn als een variabele in jouw php-code. En ga dan maar eens zoeken hoe het kan dat jouw tekst $bedenkMaarEenNaam in geen velden of wegen is te bekennen...

Uiteraard wil je geen variabelen binnen quotes hebben, dat ben ik direct met je eens. Maar dan wil ik wel iedere willekeurige tekst tussen de quotes kunnen zetten zonder de kans te lopen dat dit fout gaat. En ja, ik ben bekend met het lapmiddel van de accolades {}.

Enkele quotes in PHP bevallen mij uitstekend, in SQL zijn ze verplicht. Althans, enkele quotes zijn de officieele standaard. Andere programmeertalen heb ik geen ervaring mee, ik ben van huis uit geen programmeur.
Hmm wat bedoel je precies? Een dollarteken kun je in html sowieso het beste met de html code weergeven, zodat hij altijd goed wordt weergegeven. Dus dan heb je sowieso het probleem niet meer dat hij vervangen wordt. Je kunt hem natuurlijk ook altijd escapen. Maar bedoel je dit wel?
Ik bedoel het volgende:
De $dollar is vandaag in waarde gedaald

En in jouw code heb je toevallig ook een variabele $dollar staan:
<?php
$dollar = 1.45;
$string = "De $dollar is vandaag in waarde gedaald";
echo $string;
?>
Resultaat:
De 1.45 is vandaag in waarde gedaald

Wanneer de data van $string tussen enkele quotes staat, krijg je dit als output:
De $dollar is vandaag in waarde gedaald

De kans dat je dit gebeurd is erg klein, maar het is vreemd gedrag dat voor hele lullige bugs kan zorgen. Zeker omdat de variabele $dollar van waarde kan wisselen en je tijdens het testen iedere keer andere waardes kunt krijgen. Zelfs correcte gegevens zijn mogelijk, bv. wanneer $dollar nog niet bestaat. Erg lastig om zoiets te debuggen en het is erg eenvoudig om dit soort problemen te voorkomen: enkele quotes.
Okee, maar je zou voor een dollar teken de html code moeten gebruiken! Als je dat teveel werk vind kun je natuurlijk altijd gewoon het dollar teken escapen =). Overigens zou er sowieso een rode vlag bij je omhoog moeten gaan zodra je een dollar teken gebruikt in je tekst =).

Maar goed, het is wel duidelijk dat het vrij weinig uit maakt of je nou enkele of dubbele quotes gebruikt, als je maar consequent blijft.

Reageren