Avatar billede pheboss Nybegynder
01. maj 2003 - 20:25 Der er 24 kommentarer

dobbelt $ virker åbenbart ikke...

while($row = mysql_fetch_array($data)){
$name = "svr" . $row[id];
if($row[rigtig] == $$name){$rigtige++;}
echo"$$name";
}

Hvordan laves ovenstående så echoet bliver indholdet af f.eks $svr2 (hvis row[id] er 2)
Avatar billede ahv Nybegynder
01. maj 2003 - 20:26 #1
while($row = mysql_fetch_array($data)){
$name = "svr" . $row[id];
if($row[rigtig] == $name){$rigtige++;}
echo"$name";
}
Avatar billede ahv Nybegynder
01. maj 2003 - 20:27 #2
Din $name linie kan laves om til:

$name = "svr$row[id]";
Avatar billede erikjacobsen Ekspert
01. maj 2003 - 20:31 #3
echo $$name;
Avatar billede pheboss Nybegynder
01. maj 2003 - 20:31 #4
det skal ikke være svr$row[id] men $svr$row[id], den skal jo hente en værdi...
Avatar billede ahv Nybegynder
01. maj 2003 - 20:33 #5
$name = "$svr$row[id]";

?
Avatar billede pheboss Nybegynder
01. maj 2003 - 20:34 #6
ja nu skriver den ikke svr1 i echoet....

men så fanger scriptet vist ikke $svr variablerne ordentligt...

er der noget galt her: ??

<td width='120'><input type='radio' name='svr.$row[id]' value='".$row[svr1]."'> $row[svr1]</td>
Avatar billede erikjacobsen Ekspert
01. maj 2003 - 20:36 #7
Fjern punktummet
Avatar billede pheboss Nybegynder
01. maj 2003 - 20:40 #8
nope...
Avatar billede pheboss Nybegynder
01. maj 2003 - 20:40 #9
<td width='120'><input type='radio' name='svr$row[id]' value='$row[svr1]'> $row[svr1]</td> ????
Avatar billede erikjacobsen Ekspert
01. maj 2003 - 20:43 #10
1) Står der så name="svr2"  etc i din HTML (vis kode)
2) Findes $svr2 på den næste side?
3) Du kan lige så godt bruge $_POST["svr".$row[id]] ...
4) men $$ er sjovere
Avatar billede pheboss Nybegynder
01. maj 2003 - 20:46 #11
<?
echo "<font face 'Tahoma' size='5'><b>- Konkurrence -</b><p><font size='2'>";
if($deltag){
$rigtige = 0;
$data = mysql_query("SELECT * from konkurrence_spm order by id");
while($row = mysql_fetch_array($data)){
$name = "svr$row[id]";
if($row[rigtig] == $name){$rigtige++;}
echo $$name;
}
echo"$rigtige";

echo"Hvis du har svaret rigtig på mindst 3 af spørgsmålene er du nu med i konkurrencen";
mysql_query("insert into konkurrence_svr (email, spm1, spm2, spm3, spm4, spm5, spm6, spm7, spm8, spm9, spm10, rigtige) values ('$email','$svr1','$svr2','$svr3','$svr4','$svr5','$svr6','$svr7','$svr8','$svr9','$svr10','$rigtige')");


}else{

echo"<form action='?index=konkurrence' method='post'><font size='1'>";

$data = mysql_query("SELECT * from konkurrence_spm order by id");
while($row = mysql_fetch_array($data)){
echo"$row[id]. Spørgsmål - $row[spm]<p>
<table><tr>
<td width='70'></td>
<td width='120'><input type='radio' name='svr$row[id]' value='$row[svr1]'> $row[svr1]</td>
<td width='120'><input type='radio' name='svr$row[id]' value='$row[svr2]'> $row[svr2]</td>
<td width='120'><input type='radio' name='svr$row[id]' value='$row[svr3]'> $row[svr3]</td>
</tr></table><p>
";
}

echo"Din email:<br><input type='text' name='adresse' value=''><p><input type='submit' name='deltag' value='Deltag'>";
}
Avatar billede pheboss Nybegynder
01. maj 2003 - 20:48 #12
der er 5 kolonner i konkurrence_spm (spm, svr1, svr2, svr3, rigtig)

Det scriptet så skal tjekke er om det svar de kommer med er lig $row[rigtig]...
Avatar billede fangel Nybegynder
01. maj 2003 - 21:32 #13
det rigtige svar er blevet skrevet, men der har i vidst ikke opfattet... (brougth to you by eric j.)... men for at skrive det igen (så kan det være i fanger det)...

while($row = mysql_fetch_array($data)){
$name = "svr" . $row[id];
if($row[rigtig] == $$name){$rigtige++;}
echo $$name;
}

så "hudt jeg visker" er det mig der har lavetet den kodestump tildligere herinde på eksperten, og der var det også laver rigtigt... men altså svaret var at når du skal lege med variable variabler, så skal du ikke have " uden om $$name... ;)

Morten
Avatar billede erikjacobsen Ekspert
01. maj 2003 - 21:33 #14
Jeg spørger om du ikke skal bruge $_POST i stedet for til dine $svr-felter?
Avatar billede fangel Nybegynder
01. maj 2003 - 21:34 #15
sorry, var ikke mig der havde lavet det, men noget der lignede _MEGET_ http://www.eksperten.dk/spm/343773
Avatar billede pheboss Nybegynder
01. maj 2003 - 21:43 #16
Ja jeg har scriptet fra xited, men så vidt jeg kan se på indlægget har vedkommede heller ikke fundet en løsning...

$$name udskriver nu indholdet af $svr$row[id] men den skriver ikke til sql
Avatar billede fangel Nybegynder
01. maj 2003 - 21:46 #17
HÆ, fandt en dum fejl, så du står vidst til dummeslag... ;)

if($row[rigtig] == $name){$rigtige++;} // du afslutter din if _HER_, den skal væk... ;)
echo $$name;
}

altså

if($row[rigtig] == $name){
  $rigtige++;
  echo $$name;
}
Avatar billede fangel Nybegynder
01. maj 2003 - 21:49 #18
du ville have fundet fejlen hvis du havde giddet at bruge lidt indrykning...

--- forbedre kildekode ---
<?
echo "<font face 'Tahoma' size='5'><b>- Konkurrence -</b><p><font size='2'>";
if($deltag){
  $rigtige = 0;
  $data = mysql_query("SELECT * from konkurrence_spm order by id");
  while($row = mysql_fetch_array($data)){
    $name = "svr$row[id]";
    if($row[rigtig] == $name){
      $rigtige++;
      echo $$name;
    }
    echo $rigtige;
    echo "Hvis du har svaret rigtig på mindst 3 af spørgsmålene er du nu med i konkurrencen";
    mysql_query("insert into konkurrence_svr (email, spm1, spm2, spm3, spm4, spm5, spm6, spm7, spm8, spm9, spm10, rigtige) values ('$email','$svr1','$svr2','$svr3','$svr4','$svr5','$svr6','$svr7','$svr8','$svr9','$svr10','$rigtige')");


}else{

echo"<form action='?index=konkurrence' method='post'><font size='1'>";

$data = mysql_query("SELECT * from konkurrence_spm order by id");
while($row = mysql_fetch_array($data)){
echo"$row[id]. Spørgsmål - $row[spm]<p>
<table><tr>
<td width='70'></td>
<td width='120'><input type='radio' name='svr$row[id]' value='$row[svr1]'> $row[svr1]</td>
<td width='120'><input type='radio' name='svr$row[id]' value='$row[svr2]'> $row[svr2]</td>
<td width='120'><input type='radio' name='svr$row[id]' value='$row[svr3]'> $row[svr3]</td>
</tr></table><p>
";
}

echo"Din email:<br><input type='text' name='adresse' value=''><p><input type='submit' name='deltag' value='Deltag'>";
}
Avatar billede fangel Nybegynder
01. maj 2003 - 21:49 #19
hov... den fortsatte... havde ikke set det, men du har vidst set systemet...
Avatar billede pheboss Nybegynder
01. maj 2003 - 23:11 #20
Skriver en enkelt linie til sql, hvis man prøver igen sker der intet...
Avatar billede fangel Nybegynder
02. maj 2003 - 15:12 #21
øhhh... din kode vil til enhver tid kun skrive en linie i databasen med mindre man svare endnu en gang...
Avatar billede Slettet bruger
02. maj 2003 - 16:12 #22
skriv

while($row = mysql_fetch_array($data)){
$name = "svr" . $row[id];
if($row[rigtig] == ${$name}){$rigtige++;}
echo ${$name};
}
Avatar billede pheboss Nybegynder
02. maj 2003 - 17:09 #23
dea_pg> ja men det er jo det den ikke kan (svare mere end en gang) det skal de individuelle ikke kunne gøre, men der skal selvfølgelig kunne deltage mere end 1 person i konkurrencen...
Avatar billede pheboss Nybegynder
02. maj 2003 - 17:10 #24
Hvis jeg udfylder hele lortet og submitter kommer der 1 række i sqlen.... prøver jeg igen kommer der intet (medmindre jeg sletter den første linie i sqlen) det er somom den ikke vil have mere end 1 linie liggende...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester