Avatar billede schunck Juniormester
21. april 2011 - 11:20 Der er 19 kommentarer og
1 løsning

Variabler bliver ikke sendt i post

Jeg har et script, hvor jeg sender nogle oplysninger igennem flere formularer.

Når jeg kører scriptet fra Wamp virker det upåklageligt, men når jeg uploader det til serveren hos Danhost, bliver ingen data sendt igennem scriptet. Den kører rigtigt rundt mellem formularerne, men variablerne forbliver tomme.

Jeg benytter samme MySQL-database begge steder.

Jeg tillader mig at smide hele scriptet... Da jeg ingen anelse har om, hvor i scriptet der evt. måtte være fejl.

Håber nogen kan hjælpe.

------------------------------------------------------------
<?
include "connect.php";

    if (isset($_GET['step'])) {
$step=$_GET['step'];
}
if ($step=='1') {

// step 1 update
if(isset($_POST['update_step1'])) {
IF ($_SERVER["REQUEST_METHOD"]=="POST" ) {
$recveid = mysql_query("SELECT kampid FROM kampstat ORDER BY kampid DESC LIMIT 0,1") or die(mysql_error());
while(list($subid) = mysql_fetch_row($recveid)){
$newid = $subid+1;
}
$date = $dag;
$date .= $mdr;
$newmatch = mysql_query ("INSERT INTO `kampstat` (`kampid`,`hjemmehold`,`udehold`,`hjemmaal`,`udmaal`,`dato`,`praefiks`,`status`) VALUES ('".$newid."','".$hjemmehold."','".$udehold."','".$hjemmaal."','".$udmaal."','".$date."','".$praefiks."','".$status."')"); 
        ob_start();
        header("Location: $PHP_SELF?step=2&mloop=".$maalffa06."&gloop=".$gkffa06."&rloop=".$rkffa06."&kampid=".$newid."&cs=".$cs."");
        ob_flush();
        /* echo "<script language='javascript'>\n";
        echo "window.location='$PHP_SELF?step=2&mloop=".$maalffa06."&gloop=".$gkffa06."&rloop=".$rkffa06."&kampid=".$newid."&cs=".$cs."';\n";
        echo "</script>\n"; */
    exit();
}
}
   
    // step 1
echo "<table cellspacing='2' cellpadding='2' border='0'><tr>\n";
echo "<td class='tbl'><b>Tilføj kamp</b></td>\n";
echo "</tr><tr>\n";
echo "<td class='tbl'><form name='step1' method='post'>Dato:</td>\n";
echo "<td class='tbl'><select name='dag' class='textbox'>\n";
    echo "<option value=''></option>\n";
    echo "<option value='1.'>1</option>\n";
    echo "<option value='2.'>2</option>\n";
    echo "<option value='3.'>3</option>\n";
    echo "<option value='4.'>4</option>\n";
    echo "<option value='5.'>5</option>\n";
    echo "<option value='6.'>6</option>\n";
    echo "<option value='7.'>7</option>\n";
    echo "<option value='8.'>8</option>\n";
    echo "<option value='9.'>9</option>\n";
    echo "<option value='10.'>10</option>\n";
    echo "<option value='11.'>11</option>\n";
    echo "<option value='12.'>12</option>\n";
    echo "<option value='13.'>13</option>\n";
    echo "<option value='14.'>14</option>\n";
    echo "<option value='15.'>15</option>\n";
    echo "<option value='16.'>16</option>\n";
    echo "<option value='17.'>17</option>\n";
    echo "<option value='18.'>18</option>\n";
    echo "<option value='19.'>19</option>\n";
    echo "<option value='20.'>20</option>\n";
    echo "<option value='21.'>21</option>\n";
    echo "<option value='22.'>22</option>\n";
    echo "<option value='23.'>23</option>\n";
    echo "<option value='24.'>24</option>\n";
    echo "<option value='25.'>25</option>\n";
    echo "<option value='26.'>26</option>\n";
    echo "<option value='27.'>27</option>\n";
    echo "<option value='28.'>28</option>\n";
    echo "<option value='29.'>29</option>\n";
    echo "<option value='30.'>30</option>\n";
    echo "<option value='31.'>31</option>\n";
echo "</select><select name='mdr' class='textbox'>\n";
    echo "<option value=''></option>\n";
    echo "<option value='januar'>januar</option>\n";
    echo "<option value='februar'>februar</option>\n";
    echo "<option value='marts'>marts</option>\n";
    echo "<option value='april'>april</option>\n";
    echo "<option value='maj'>maj</option>\n";
    echo "<option value='juni'>juni</option>\n";
    echo "<option value='juli'>juli</option>\n";
    echo "<option value='august'>august</option>\n";
    echo "<option value='september'>september</option>\n";
    echo "<option value='oktober'>oktober</option>\n";
    echo "<option value='november'>november</option>\n";
    echo "<option value='december'>december</option>\n";
echo "</select></td>\n";
echo "</tr><tr>\n";
echo "<td class='tbl'>Hjemmehold:</td>\n";
echo "<td class='tbl'><select name='hjemmehold' class='textbox'>\n";
    echo "<option value=''></option>\n";
    echo "<option value='FFa06'>FFa06</option>\n";
    echo "<option value='BK Sidste Chance'>BK Sidste Chance</option>\n";
    echo "<option value='Cph. MetroStars'>Cph. MetroStars</option>\n";
    echo "<option value='Den Jyske Fraktion'>Den Jyske Fraktion</option>\n";
    echo "<option value='FC Krølben'>FC Krølben</option>\n";
    echo "<option value='FC Tre Falke'>FC Tre Falke</option>\n";
    echo "<option value='Fedets Drenge'>Fedets Drenge</option>\n";
    echo "<option value='FIH'>FIH</option>\n";
    echo "<option value='G & T'>G & T</option>\n";
    echo "<option value='Gribben Fodbold'>Gribben Fodbold</option>\n";
    echo "<option value='Midtbyen Sport-Verein'>Midtbyen Sport-Verein</option>\n";
    echo "<option value='Pantani Pirates'>Pantani Pirates</option>\n";
echo "</select></td>\n";
echo "<td class='tbl'>Mål:</td>\n";
echo "<td class='tbl'><input type='text' name='hjemmaal' value='' maxlength='3' class='textbox' style='width:20px;'></td>\n";
echo "</tr><tr>\n";
echo "<td class='tbl'>Udehold:</td>\n";
echo "<td class='tbl'><select name='udehold' class='textbox'>\n";
    echo "<option value=''></option>\n";
    echo "<option value='FFa06'>FFa06</option>\n";
    echo "<option value='BK Sidste Chance'>BK Sidste Chance</option>\n";
    echo "<option value='Cph. MetroStars'>Cph. MetroStars</option>\n";
    echo "<option value='Den Jyske Fraktion'>Den Jyske Fraktion</option>\n";
    echo "<option value='FC Krølben'>FC Krølben</option>\n";
    echo "<option value='FC Tre Falke'>FC Tre Falke</option>\n";
    echo "<option value='Fedets Drenge'>Fedets Drenge</option>\n";
    echo "<option value='FIH'>FIH</option>\n";
    echo "<option value='G & T'>G & T</option>\n";
    echo "<option value='Gribben Fodbold'>Gribben Fodbold</option>\n";
    echo "<option value='Midtbyen Sport-Verein'>Midtbyen Sport-Verein</option>\n";
    echo "<option value='Pantani Pirates'>Pantani Pirates</option>\n";
echo "</select></td>\n";
echo "<td class='tbl'>Mål:</td>\n";
echo "<td class='tbl'><input type='text' name='udmaal' value='' maxlength='3' class='textbox' style='width:20px;'></td>\n";
echo "</tr><tr>\n";
echo "<td class='tbl'>Udfald:</td>\n";
echo "<td class='tbl'>\n";
    echo "<input type='radio' name='praefiks' class='textbox' value='S' checked>Sejr\n";
    echo "<input type='radio' name='praefiks' class='textbox' value='U'>Uafgjort\n";
    echo "<input type='radio' name='praefiks' class='textbox' value='N'>Nederlag\n";
echo "</td>\n";
echo "</tr><tr>\n";
echo "<td class='tbl'>Taberdømt:</td>\n";
echo "<td class='tbl'>\n";
    echo "<input type='checkbox' name='status' class='textbox' value='HT'> Hjemmehold / \n";
    echo "<input type='checkbox' name='status' class='textbox' value='UT'> Udehold\n";
echo "</td>\n";
echo "</tr><tr>\n";
echo "<td class='tbl'>Antal mål til FFa06:</td>\n";
echo "<td class='tbl'><input type='text' name='maalffa06' value='0' maxlength='3' class='textbox' style='width:20px;'></td>\n";
echo "</tr><tr>\n";
echo "<td class='tbl'>Antal Gule kort til FFa06:</td>\n";
echo "<td class='tbl'><input type='text' name='gkffa06' value='0' maxlength='3' class='textbox' style='width:20px;'></td>\n";
echo "</tr><tr>\n";
echo "<td class='tbl'>Antal Røde kort til FFa06:</td>\n";
echo "<td class='tbl'><input type='text' name='rkffa06' value='0' maxlength='3' class='textbox' style='width:20px;'></td>\n";
echo "</tr><tr><td class='tbl'>Blev målet holdt rent:</td><td class='tbl'>\n";
    echo "<input type='radio' name='cs' class='textbox' value='Y' checked>Ja\n";
    echo "<input type='radio' name='cs' class='textbox' value='N'>Nej\n";
echo "</td>\n";
echo "</tr><tr><td colspan='4' align='center'><input type='submit' name='update_step1' value='Gå til næste skridt' class='button'></form></td></tr></table>\n";
}
if ($step=='2') {
$mloop=$_GET['mloop'];
$gloop=$_GET['gloop'];
$rloop=$_GET['rloop'];
$larsid=$_GET['kampid'];
$cleansheet=$_GET['cs'];
    //step 2 update

if(isset($_POST['update_step2'])) {
IF ($_SERVER["REQUEST_METHOD"]=="POST" ) {
//kampstat spillere til kamp update
    $tilkamp = '';
for ($ti=1; $ti<=17; $ti++) {
    $teter = 'spillerkamp';
    $teter .= $ti;
    $tilkamp .= ' ';
    $tilkamp .= $$teter;
    $tilkamp .= '&#10;';

}
mysql_query("UPDATE kampstat SET spiller='".$tilkamp."' WHERE kampid='".$larsid."'");
//kampstat mål i kamp update
    $maalikamp = '';
for ($pi=1; $pi<=$mloop; $pi++) {
    $peter = 'maal';
    $peter .= $pi;
    $maalikamp .= ' ';
    $maalikamp .= $$peter;
    $maalikamp .= '&#10;';
}
mysql_query("UPDATE kampstat SET score='".$maalikamp."' WHERE kampid='".$larsid."'");
//kampstat gk i kamp update
    $gkikamp = '';
for ($gi=1; $gi<=$gloop; $gi++) {
    $geter = 'gk';
    $geter .= $gi;
    $gkikamp .= ' ';
    $gkikamp .= $$geter;
    $gkikamp .= '&#10;';
}
mysql_query("UPDATE kampstat SET gulekort='".$gkikamp."' WHERE kampid='".$larsid."'");
//kampstat rk i kamp update
    $rkikamp = '';
for ($ri=1; $ri<=$rloop; $ri++) {
    $reter = 'rk';
    $reter .= $ri;
    $rkikamp .= ' ';
    $rkikamp .= $$reter;
    $rkikamp .= '&#10;';
}
mysql_query("UPDATE kampstat SET roedekort='".$rkikamp."' WHERE kampid='".$larsid."'");
//kampstat assist i kamp update
    $assistikamp = '';
for ($ai=1; $ai<=$mloop; $ai++) {
    $aeter = 'assist';
    $aeter .= $ai;
    $assistikamp .= ' ';
    $assistikamp .= $$aeter;
    $assistikamp .= '&#10;';
}
mysql_query("UPDATE kampstat SET oplaeg='".$assistikamp."' WHERE kampid='".$larsid."'");
//spillerstat målupdate   
for ($pi=1; $pi<=$mloop; $pi++) {
        $peter = 'maal';
        $peter .= $pi;
$scoresultmaal = mysql_query("SELECT maal FROM spillerstat WHERE navn='".$$peter."' ") or die(mysql_error());
while(list($gmaal) = mysql_fetch_row($scoresultmaal)){
$nymaal = $gmaal+1;
        }
        mysql_query("UPDATE spillerstat SET maal='".$nymaal."' WHERE navn='".$$peter."'");
    }
//spillerstat gkupdate
for ($gi=1; $gi<=$gloop; $gi++) {
        $geter = 'gk';
        $geter .= $gi;
$scoresultgk = mysql_query("SELECT gk FROM spillerstat WHERE navn='".$$geter."' ") or die(mysql_error());
while(list($ggk) = mysql_fetch_row($scoresultgk)){
$nygk = $ggk+1;
        }
        mysql_query("UPDATE spillerstat SET gk='".$nygk."' WHERE navn='".$$geter."'");
    }
    //spillerstat assupdate
for ($ai=1; $ai<=$mloop; $ai++) {
        $aeter = 'assist';
        $aeter .= $ai;
$scoresultass = mysql_query("SELECT assist FROM spillerstat WHERE navn='".$$aeter."' ") or die(mysql_error());
while(list($gassist) = mysql_fetch_row($scoresultass)){
$nyassist = $gassist+1;
        }
        mysql_query("UPDATE spillerstat SET assist='".$nyassist."' WHERE navn='".$$aeter."'");
    }
//spillerstat rkupdate
for ($ri=1; $ri<=$rloop; $ri++) {
        $reter = 'rk';
        $reter .= $ri;
$scoresultrk = mysql_query("SELECT rk FROM spillerstat WHERE navn='".$$reter."' ") or die(mysql_error());
while(list($grk) = mysql_fetch_row($scoresultrk)){
$nyrk = $grk+1;
        }
        mysql_query("UPDATE spillerstat SET rk='".$nyrk."' WHERE navn='".$$reter."'");
    }
//spillerstat kampupdate
for ($ki=1; $ki<=17; $ki++) {
        $keter = 'spillerkamp';
        $keter .= $ki;
$scoresultkamp = mysql_query("SELECT kampe FROM spillerstat WHERE navn='".$$keter."' ") or die(mysql_error());
while(list($gkam) = mysql_fetch_row($scoresultkamp)){
$nykam = $gkam+1;
        }
        mysql_query("UPDATE spillerstat SET kampe='".$nykam."' WHERE navn='".$$keter."'");
    }
//spillerstat csupdate
$csresult = mysql_query("SELECT cs FROM spillerstat WHERE id='".$celas."' ") or die(mysql_error());
while(list($gcs) = mysql_fetch_row($csresult)){
$nycs = $gcs+1;
        }
        mysql_query("UPDATE spillerstat SET cs='".$nycs."' WHERE id='".$celas."'");
//redirect   
        ob_start();
        header("Location: $PHP_SELF?step=3&mloop=".$maalffa06."&gloop=".$gkffa06."&rloop=".$rkffa06."&kampid=".$newid."&cs=".$cs."");
        ob_flush();
        /* echo "<script language='javascript'>\n";
        echo "window.location='$PHP_SELF?step=3&mloop=".$maalffa06."&gloop=".$gkffa06."&rloop=".$rkffa06."&kampid=".$newid."&cs=".$cs."';\n";
        echo "</script>\n";*/
        exit();   
}
   
}
//step 2


echo "<table cellspacing='2' cellpadding='2' border='0'><form name='step2' method='post'><tr>\n";
echo "<td class='tbl'><b>Vælg aktører</b></td></tr>\n";
echo "<tr><td class='tbl' valign='top'><u>Spillere til kamp</u><br>Vælg spillere:</td>\n";
echo "<td class='tbl' colspan='5'><table><tr>\n";
$spil = mysql_query("select * from spillerstat WHERE id!='0' ORDER BY navn ASC");
$j = 1;
while(list($id,$name) = mysql_fetch_row($spil)){
    if($j==3){
        echo "<td class='tbl'><input type='checkbox' name='spillerkamp".$id."' class='textbox' value='".$name."'> ".$name."</td></tr><tr>\n";
    $j = 1;
        } else {
        echo "<td class='tbl'><input type='checkbox' name='spillerkamp".$id."' class='textbox' value='".$name."'> ".$name."</td>\n";
    $j++;
}
    }
    echo "</tr></table>\n";
echo "</td></tr>\n";
//målloop
echo "<tr><td class='tbl'><u>Mål</u></td></tr>\n";
for ($i=1; $i<=$mloop; $i++) {
    echo "<tr>\n";
    echo "<td class='tbl'>Mål ".$i." blev scoret af:</td>\n";
    echo "<td class='tbl'><select name='maal".$i."' class='textbox'>\n";
    echo "<option value=''></option>\n";
$mal = mysql_query("select navn from spillerstat WHERE id!='0' ORDER BY navn ASC");
while(list($name) = mysql_fetch_row($mal)){
    echo "<option value='".$name."'>".$name."</option>\n";
}
    echo "</select></td><td></td><td></td>\n";
    echo "<td class='tbl'>Assist ".$i." blev lavet af:</td>\n";
    echo "<td class='tbl'><select name='assist".$i."' class='textbox'>\n";
    echo "<option value=''></option>\n";
$assist = mysql_query("select navn from spillerstat WHERE id!='0' ORDER BY navn ASC");
while(list($name) = mysql_fetch_row($assist)){
    echo "<option value='".$name."'>".$name."</option>\n";
}
    echo "</select></td></tr>\n";
  }
// gultloop
echo "<tr><td class='tbl'><u>Gule kort</u></td></tr>\n";
for ($k=1; $k<=$gloop; $k++) {
    echo "<tr>\n";
    echo "<td class='tbl'>Det ".$k.". gule kort blev givet til:</td>\n";
    echo "<td class='tbl'><select name='gk".$k."' class='textbox'>\n";
    echo "<option value=''></option>\n";
$gultk = mysql_query("select navn from spillerstat WHERE id!='0' ORDER BY navn ASC");
while(list($name) = mysql_fetch_row($gultk)){
    echo "<option value='".$name."'>".$name."</option>\n";
}
    echo "</select></td></tr>\n";
    }
// rødtloop
echo "<tr><td class='tbl'><u>Røde kort</u></td></tr>\n";
for ($r=1; $r<=$rloop; $r++) {
    echo "<tr>\n";
    echo "<td class='tbl'>Det ".$r.". røde kort blev givet til:</td>\n";
    echo "<td class='tbl'><select name='rk".$r."' class='textbox'>\n";
    echo "<option value=''></option>\n";
$rodk = mysql_query("select navn from spillerstat WHERE id!='0' ORDER BY navn ASC");
while(list($name) = mysql_fetch_row($rodk)){
    echo "<option value='".$name."'>".$name."</option>\n";
}
    echo "</select></td></tr>\n";
    }
// Cleansheet
echo "<tr><td class='tbl'><u>Clean Sheet</u></td></tr>\n";
    if ($cs=='Y'){
    echo "<tr>\n";
    echo "<td class='tbl'>Målet blev holdt rent af:</td>\n";
    echo "<td class='tbl'><select name='celas' class='textbox'>\n";
    echo "<option value=''></option>\n";
$cela = mysql_query("select id,navn from spillerstat WHERE id!='0' ORDER BY navn ASC");
while(list($id,$name) = mysql_fetch_row($cela)){
    echo "<option value='".$id."'>".$name."</option>\n";
}
    echo "</select></td>\n";
}
    echo "<tr><td class='tbl' colspan='6' align='center'><input type='submit' name='update_step2' value='Tilføj statistik' class='button'></form></td></tr></table>\n";
}
if ($step=='3') {
    echo "Kampen med dens statistik er nu tilført systemet, og du kan lukke vinduet.\n";
    echo "<br><i>Hvis du lavede fejl undervejs, eller du fik en fejl meddelelse, bedes du kontakte webmaster</i>\n";
    }   
?>
------------------------------------------------------------
Avatar billede wanze Nybegynder
21. april 2011 - 18:25 #1
Hold da op en lang, tung og uoverskuelig kode. Jeg ved snart ikke, hvor jeg skal starte.

Først og fremmest er $_SERVER["REQUEST_METHOD"] totalt uddød (deprecated) - samtidig forstår jeg ikke, hvad du forventer at den returnerer, når du kontrollerer for både POST og GET.

Derudover lader det til at du henter alle rækkerne ud af din database, bare for at tælle hvor mange der er? Det er også dumt. Du kan bare lave en "SELECT COUNT(*) ...".

Samtidig lader det til, at du henter dataen ud for at finde ud af, hvilket id det næste element skal have. Brug istedet AUTO_INCREMENT-optionen i MySQL, så sørger den for det hele. Så undgår du også problemer med, at hvis en kamp lige nu bliver slettet fra din database, så vil du risikere, at der er to kampe med samme id.

Længere nede laver du et utal af INSERT til databasen, som du alle kunne have lavet i én enkelt operation. Det ville spare din server for rigtig meget arbejde!

Når du udskriver ting, så laver du også tusind echo'er. Jeg ville i stedet gøre noget lignenden:

print <<<end
  <h1>Velkommen til {$title}</h1>
  <div id="container">Her er noget tekst</div>
end;

Så slipper du for at lave \n, samtidig med at du kan bruge bruge " og PHP-variabler.
Avatar billede intenz Novice
21. april 2011 - 18:45 #2
Desuden er alle dine variabler i bl.a. din øverste INSERT statement ($newmatch = mysql_query(...)) skrevet ved navn, jeg går ud fra det er dine post variabler?

Er f.eks. $hjemmehold en POST variablen, skal du hente den med $_POST['hjemmehold'].
Avatar billede repox Seniormester
21. april 2011 - 22:03 #3
Puha - det første jeg ville gøre her ville være at adskille tingene; hvorfor ligger al databasekommunikation sammen med al outputtet? Og hvorfor skal alting ligge i en echo struktur?

Never the less - er der nogen versionsforskelle på de to servere?
Avatar billede wanze Nybegynder
22. april 2011 - 01:56 #4
@repox, jeg tror han opdager problemet, så snart han indser, at nå globaler variabler ikke er aktiveret, så $hjemmehold ikke er det samme som $_POST['hjemmehold'].
Avatar billede schunck Juniormester
24. april 2011 - 11:39 #5
Først beklager jeg, at jeg ikke har svaret tidligere. Har været en tur på visit på den anden side af storebælt. Dernæst beklager jeg, at sciptet er så rodet. Det var det bedste jeg evnede. Jeg må lige sætte mig ned og læse lidt op på funktionerne i php.

Jeg rettede mine variabler fra f.eks. $hjemmehold til $POST['hjemmehold'], som foreskrevet. Eks.:

$PHP_SELF?step=2&mloop=".$maalffa06."&gloop=".$gkffa06."&rloop=".$rkffa06."&kampid=".$newid."&cs=".$cs."");

blev til

step=2&mloop=".$POST['maalffa06']."&gloop=".$POST['gkffa06']."&rloop=".$POST['rkffa06']."&kampid=".$POST['newid']."&cs=".$POST['cs']."");

med det resultat, at fejlen blot opstod fra egen server også også.

Ang. serverversion er Danhost: Apache/2.2.17 (Unix) mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 mod_ssl/2.2.17 OpenSSL/1.0.0

Hvor jeg selv kører med: Apache/2.2.17 (Win32) PHP/5.3.4

Jeg har lavet en phpinfo på danhost, hvis I kan bruge det til noget: http://www.ffa06.dk/info.php
Avatar billede schunck Juniormester
24. april 2011 - 11:45 #6
fangede lige at det ikke skulle være kampid=".$POST['newid']."
men kampid=".$newid.", men det ændrede ikke noget

(jeg har også rettet i INSERT)
Avatar billede schunck Juniormester
01. maj 2011 - 20:20 #7
har jeg fat i et reelt problem her, eller har jeg gjort noget, så folk ikke er interesseret i at hjælpe?

I så fald vil jeg da gerne vide, hvad jeg har gjort forkert.

Jeg giver den et par dage mere. Hvis der stadig ikke er nogen svar, så lukker jeg spørgsmålet.
Avatar billede wanze Nybegynder
01. maj 2011 - 20:31 #8
Jeg må indrømme du tabte mig lidt, idet jeg ikke kan se nogen som helst logisk grund til, hvorfor du poster noget fra en form vha. POST, hvorefter du forsøger at indsætte det i en query-streng.

Jeg tror folk ikke gider hjælpe, fordi vi ærlig talt ikke ved, hvad du forsøger at opnå.

Dog kan jeg se nu, at da jeg opfordrede dig til at bruge $_POST['hjemmehold'], så skrev du $POST['hjemmehold'], hvilket ikke vil virke, ligemeget hvad du forsøger at opnå.
Avatar billede schunck Juniormester
01. maj 2011 - 20:51 #9
ups... Det havde jeg ikke lige fanget. Jeg skal være ærlig at sige, at jeg prøver en masse ting indtil at det virker, og det ender tit, desværre, i at jeg har noget dobbeltkode. Hvor meget tit er overflødigt. Mit eneste mål med det her, er at jeg i fodbold klubben ikke er den eneste der kan tilføje statistik, da resten ikke engang kan html. Men det kan godt være jeg har gabt over for meget.

Jeg retter lige mine $POST til $_POST
Avatar billede wanze Nybegynder
01. maj 2011 - 20:59 #10
Ja, du har forfærdelig meget dobbeltkode, og du kører den samme forespørgsel til din database igen og igen, istedet for bare at genbruge resultatet.

Din kode kunne nemt reduceres til 1/3 af, hvad den er nu, og stadig have præcis samme funktionalitet, men være både hurtigere og mere overskuelig.
Avatar billede schunck Juniormester
01. maj 2011 - 21:09 #11
Se det hjalp jo forfærdeligt meget at ændre til det man er blevet foreslået :s

Jeg har nu stadig problemer i step 2 update:

//kampstat assist i kamp update
    $assistikamp = '';
for ($ai=1; $ai<=$mloop; $ai++) {
    $aeter = 'assist';
    $aeter .= $ai;
    $assistikamp .= ' ';
    $assistikamp .= $_POST['$aeter'];
    $assistikamp .= '&#10;';
}
mysql_query("UPDATE kampstat SET oplaeg='".$assistikamp."' WHERE kampid='".$larsid."'");
//spillerstat målupdate   
for ($pi=1; $pi<=$mloop; $pi++) {
        $peter = 'maal';
        $peter .= $pi;
$scoresultmaal = mysql_query("SELECT maal FROM spillerstat WHERE navn='".$_POST['".$peter."']."' ") or die(mysql_error());
while(list($gmaal) = mysql_fetch_row($scoresultmaal)){
$nymaal = $gmaal+1;
        }
        mysql_query("UPDATE spillerstat SET maal='".$nymaal."' WHERE navn='".$_POST['".$peter."']."'");
    }

Et eller andet siger mig det er stadig er min brujg af $_POST der er problemet
Avatar billede wanze Nybegynder
01. maj 2011 - 21:24 #12
Du må sige, hvad der er galt.

Får du en PHP-fejl? Eller en MySQL-fejl? Så vidt jeg kan se kontrollerer du slet ikke, om din query "går igennem", så du ved ikke, om der opstår en fejl ved forespørgslen.

Hvad er problemet? Du kan jo starte med at udskrive din MySQL query for at se om den ser ud som du regner med.
Avatar billede schunck Juniormester
01. maj 2011 - 21:46 #13
jeg får ikke nogen fejl...

Og min CS opdatering går igennem. Ligeledes sendes al information som ikke er en del af $_POST.
f.eks. $assistikamp .= '&#10;'; ender i databasen.
Avatar billede wanze Nybegynder
01. maj 2011 - 21:52 #14
Din "CS opdatering"?

Nej, du får ikke nogen fejl, for du kontrollerer ikke om der opstår fejl i din query.

Samtidig har du endnu ikke fortalt mig, hvad problemet så rent faktisk er. Bliver der ikke udskrevet noget som helst på skærmen eller hvad er det der "ikke virker"?
Avatar billede schunck Juniormester
02. maj 2011 - 15:08 #15
Alt synes at virke som det skal. Jeg får ikke nogen fejl i min query, ej heller i min php-kode.

Problemet er det samme som i http://www.eksperten.dk/spm/936986
hvor jeg dog trods alt fik løst problemet. Nu, hvor jeg så skal ændre $hjemmehold til $_POST['hjemmehold'], synes jeg at have det samme problem. Jeg er ikke sikker på, hvordan jeg skal formulere, så den henter med post i loopet.

loop1 skal hedde:
    $assistikamp = ' ';
    $assistikamp .= $_POST['assist1'];
    $assistikamp .= '&#10;';
}
mysql_query("UPDATE kampstat SET oplaeg='".$assistikamp."' WHERE kampid='".$larsid."'");

loop2 skal hedde:
    ...
    $assistikamp .= $_POST['assist2'];
    ...

osv. Hvor antallet af loops er defineret af bruger.

Det den printer med ovenstående kode bliver blot ' &#10;'
Den får altså ikke det postede med. Gav det mere mening?
Avatar billede wanze Nybegynder
02. maj 2011 - 15:18 #16
Så dit problem er, at $_POST['assist1']; ikke er sat. Det er jo bare et HTML-program. Hvordan ser formen ud, du poster med?
Avatar billede schunck Juniormester
02. maj 2011 - 15:29 #17
jeg poster med:
/målloop
echo "<tr><td class='tbl'><u>Mål</u></td></tr>\n";
for ($i=1; $i<=$mloop; $i++) {
    echo "<tr>\n";
    echo "<td class='tbl'>Mål ".$i." blev scoret af:</td>\n";
    echo "<td class='tbl'><select name='maal".$i."' class='textbox'>\n";
    echo "<option value=''></option>\n";
$mal = mysql_query("select navn from spillerstat WHERE id!='0' ORDER BY navn ASC");
while(list($name) = mysql_fetch_row($mal)){
    echo "<option value='".$name."'>".$name."</option>\n";
}
    echo "</select></td><td></td><td></td>\n";
    echo "<td class='tbl'>Assist ".$i." blev lavet af:</td>\n";
    echo "<td class='tbl'><select name='assist".$i."' class='textbox'>\n";
    echo "<option value=''></option>\n";
$assist = mysql_query("select navn from spillerstat WHERE id!='0' ORDER BY navn ASC");
while(list($name) = mysql_fetch_row($assist)){
    echo "<option value='".$name."'>".$name."</option>\n";
}
    echo "</select></td></tr>\n";
  }

Nu prøvede jeg lige at lege med nogle forskellige variationer af $_POST

Og istedet for $_POST[".$peter."] brugte jeg $POST[$Peter] og det virkede. Nu sender den alt som den skal og alt virker som det skal. Så jeg tror vi er nået til pointuddelling.

Hvem vil have hvad. Jeg synes jeg har fået fantastisk hjælp af dig Wanze og repox svarede reelt på det egentlige spørgsmål. Så jeg synes i begge skal have point. Hvordan skal de fordeles og er der evt. en måde, hvorpå jeg kan tildele flere point, end blot de 60 til deling?
Avatar billede wanze Nybegynder
02. maj 2011 - 15:34 #18
Vi kan vel bare dele point lige over, 30 til hver. Det gør du bare ved at acceptere både mit og repox' svar (når han lægger et). Ingen af os hungrer efter point, så jeg tror ikke det er nødvendigt at tildele flere.
Avatar billede schunck Juniormester
02. maj 2011 - 15:37 #19
Super. Så appellerer jeg blot til Repox om at smide et svar
Avatar billede schunck Juniormester
10. maj 2011 - 15:03 #20
Jeg lukker. Hvis Repox stadig ønsker point, så må han lige sige til. Så arrangerer vi det.
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

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