20. april 2005 - 21:33Der er
8 kommentarer og 1 løsning
Hjælp til smartest at lave en side til kampinfo
Ja, jeg har et lille problem, som jeg mærkeligt nok gerne vil have lidt hjælp til.
Jeg har lavet en side, hvor man kan indtaste henholdsvis hjemmehold, udehold, hvor mange mål de hver især scorede, samt dato for kampen. Ved "Upload" bliver data gemt i en tabel, og siden kalder en ny side, hvor man skal udfylde eventuelle målscorer og assistspillere. Den har jeg så fået lavet sådan at, målscorer og assist skal udfyldes via en select, hvor indhold hentes fra bruger/spillertabellen. Antallet af selects kommer selvfølgelig an på hvor mange scoringer der faldt i kampen.
Og det er så her problemerne begyndte at melde sig. Hvordan skulle jeg navngive selectene, så jeg kunne identificere hver enkelt. Dette løste jeg via en forløkke, hvor jeg tager index fra og lægge i rø... af navnet på selecten, og det fungere godt nok indtil jeg skal have fat i dem igen, for at gemme indholdet i databasen. Her bruger jeg igen en forløkke, for at få skabt nummeringen. Men jeg kan kun få fat i én select af gang, og hvis jeg echo'er dem begge, ser det ud til at løkken køre uendeligt, selvom jeg har sat maks til antal scoringer.
Så jeg vil godt have lidt hjælp til enten at finde ud af hvorfor jeg har problemer med forløkken, eller også kan I komme med smartere måder og gøre det på.
//laver x antal række med selects, alt efter hvor mange mål der er scoret for ($i=1; $i<=$info[udMaal]; $i++){?> <tr> <td class="tekst">Målscorer:</td> <td> <select name="maal<?=$i;?>"> <option></option> <? $spiller = mysql_query("SELECT * FROM ifabruger WHERE brugertype='3'"); while ($spil = mysql_fetch_array($spiller)){?> <option value="<?=$spil[id];?>"><? echo $spil[fornavn] . " ". $spil[efternavn];?></option> <? }?> </select> </td> <td class="tekst">Assist:</td> <td> <select name="assist<?=$i;?>"> <option></option> <? $spiller = mysql_query("SELECT * FROM ifabruger WHERE brugertype='3'"); while ($spil = mysql_fetch_array($spiller)){?> <option value="<?=$spil[id];?>"><? echo $spil[fornavn] . " ". $spil[efternavn];?></option> <? }?> </select> </td> </tr> <tr> <td class="tekst" width="40%"><?=$besked?></td><td width="20%"><input name="antal" type="hidden" value="<?=$i;?>"><input name="rettype" type="hidden" value="redigere"><input name="kampId" type="hidden" value="<?=$_GET[kampId]?>"><input name="submit" type="submit" value="Upload"></td><td><input name="submit" type="submit" value="Slet"></td> </tr> <? }
//Her skulle data gerne fanges og gemme i db, som I kan se har jeg en masse echo'er for at se hvad der går galt. if (isset($_POST['submit']) && $_POST['submit'] == "Upload" && $_POST['rettype'] == "redigere") { $antal = $_POST['antal']."<br>"; $str; for ($i=1; $i<=$antal; $i++) { //echo $str = maal.$i; $mid.$i = $_POST[maal.$i]." "; echo $aid.$i = $_POST[assist.$i]."<br>"; /*$kamp.$i = $_POST[kampId.$i];
Det er lidt svært at se hvad din kode går ud på, kan du ikke prøve at lave en .phps fil og evt. smide den op? Anyway så er det da dumt at du beder databasen om at udskrive alle spillerne hver gang, gør det en gang og lig dem i et array som du så kan hente i din for løkke. SÅ sparer du nogle querys :)
Ja det ville selvfølgelig være bedre. Nå, men jeg har selv fået løst problemet med at den ikke fangede assistspillerens id. Ved egentlig ikke hvorfor, for jeg synes ikke der er så stor forskel, selvom jeg har fjernet nogle koderstumper som jeg tidligere havde glemte fra nogle echo's.
Den samme spiller scorer flere gange og/eller lægger op til flere scoringer. Hvordan får jeg talt dem samme, og lagt i kun én samlet record, i stedet for en record for hver scoring/assist?
Du behøver ev.t ikke maal feltet. SÅ hver række i kampmaal er en scoring Du kan hente antal mål fra en spiller ala SELECT ... FROM kampmaal WHERE spillerId = ... AND kampID = ...;
Naaa, det skal bruges til en samlet oversigt over både målscoringer og assists.
Jeg vil bare gerne gemme det pr. kamp, så man også kan gå ind og se hvem der scorede i hvilken kampe og lignede. Og det virker godt nok, så jeg også får en oversigt ud, for hver spiller som har enten scoret/assist, hvor jeg kan se antal mål, antal assist og en samlet.
Så kamptabellen indeholder data om selve kampen -> hold, dato og antal mål. Kampmaal (lidt misvisende navn måske) har så detaljerne -> hvem scorede og hvem lagde op til scoringerne.
Kampmaal joiner jeg så med min bruger/spillertabel, så jeg kan hive både mål/assist og navn ud, og det virker altså.
Så problemet er altså "bare", hvordan jeg smarteste får gemt data i kampmaal.
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.