Avatar billede the_guv Nybegynder
28. juli 2003 - 18:43 Der er 18 kommentarer

Et php/mysql problem med en kampkalender

hej

jeg har et problem med min kampkalender.

Problemet er at den ikke gemmer dataerne, som jeg indtaster.
Den laver kun et row, selvom den fx. skulle have lavet 3...
Og i det enkelte row den laver, der gemmer den ikke oplysningerne, udover kampip.

Jeg har lagt alle filerne ned i en zip fil, som ligger på adressen: www.OldTrafford.dk/kampkalender.zip

Der er desuden en txt fil i med tabellerne, hvor der også er en introduktion til hvad filerne gør.
Den hedder tabeller.txt


Er der nogen der kan hjælpe mig?
Jeg har rodet med dette problem i 2 uger nu, hvorfor jeg gerne snart vil jeg have det lavet :/

jeg kan lige sige, at hvad jeg ville have det til at gøre:


Bruger tilføjer en ny kamp i skrivprekamp.php, der er her tale om en fremtidig kamp, hvor man derfor ikke

kan indtaste fx. resultat.
Derefter ryger den igennem gemprekamp.php

Når så kampen er spillet, så går man ind på skriv.php?id=(her indsætter du kampid'et fra den kamp du

tilføjede)
På skriv.php der er der 3 forms, en til hvor mange mål der blev scoret, en til hvor mange røde kort der blev

lavet og en til hvor mange gule kort der blev givet i kampen.

Det gør jeg fordi, at det jo er forskelligt hvor mange mål, gule kort eller røde kort, der er en i kamp.
Jeg gemmer så de tal, der bliver indtastet i den form.

Så ryger man over på skrivkamp.php=?id=kampid'et.

Her kan man så rette modstanderen, fx.
Mens man også skal indtaste dommeren, tilskuertal osv.

Nedenunder har jeg så lave forms til mål, gule og røde kort.
Disse bliver printet i det antal, som man valgte på siden før.
Dvs. hvis man valgte 3 mål, så bliver der lavet 3 forms til det.

I formen, har deres names fået normale navne, efterfulgt af en variabel der hedder fx. $i.
Denne variabel angiver et tal fra 1 til det antal mål der blev scoret.
Så den for mål der er blevet scoret, bliver der tilføjet 1 tal bagved.


Jeg håber i kan hjælpe mig....
skriv endelig hvis i skal have en bedre forklaring :)

Du kan desuden kontakte mig på MSN: The_guv_@hotmail.com eller på IRC på #oldtrafford.dk på Quakenet

netværket.

På forhånd tak.
Avatar billede the_guv Nybegynder
28. juli 2003 - 18:52 #1
jeg undskylder, at det er i en zip fil, men jeg fik ud fra, at folk nok helst ville have det samlet, istedet for at jeg pastede det herind... fylder 5 sider nemlig og så er der 3 tabeller....
Avatar billede erikjacobsen Ekspert
28. juli 2003 - 19:07 #2
Skal
    if($goalchecked.$i == 1) {
ikke være
    if($_POST["goalchecked.$i"] == 1) {
??
Avatar billede the_guv Nybegynder
28. juli 2003 - 20:12 #3
jo, det skal den...
har rettet det nu...men hjalp ikke synderligt meget :/
Avatar billede erikjacobsen Ekspert
28. juli 2003 - 20:50 #4
Så er der sikkert noget mere galt. Hvad er reaktionen nu? Er det den
rettede fil du har lagt op?
Avatar billede the_guv Nybegynder
28. juli 2003 - 21:02 #5
ja...
Jamen reaktionen er den samme, den gemmer intet på nær Kampid, og så gemmer den kun ét row og ikke fx. hvis jeg har valgt 3 mål, i 3 rows...
Avatar billede detox Nybegynder
28. juli 2003 - 23:49 #6
Jeg tror du har problemer med dine query's. Fx her i gemkamp.php:
mysql_query("UPDATE kampe SET stadion = '$stadion', modstander = '$modstander', bane = '$bane', home_goal = '$home_goal', away_goal = '$away_goal', pause = '$pause', tilskuertal = '$tilskuertal', dommer = '$dommer' WHERE id='".$_GET['id']."'") or die(mysql_error());
Hvilket jo resulterer i:
mysql_query("UPDATE kampe SET stadion = '', modstander = '', bane = '', home_goal = '', away_goal = '', pause = '', tilskuertal = '', dommer = '' WHERE id='4'") or die(mysql_error());
og det skulle sandsynligvis have været:
WHERE id=4
så prøv at fjerne ' 'erne.
Avatar billede detox Nybegynder
28. juli 2003 - 23:52 #7
Eksempel i gemkamp.php:
-----------------------
mysql_query("UPDATE kampe SET stadion = '$stadion', modstander = '$modstander', bane = '$bane', home_goal = '$home_goal', away_goal = '$away_goal', pause = '$pause', tilskuertal = '$tilskuertal', dommer = '$dommer' WHERE id=".$_GET['id']) or die(mysql_error());
Avatar billede the_guv Nybegynder
28. juli 2003 - 23:54 #8
den med update virker, så problemet ligger ikke der...
Den kan sagtens udføre den query ^^.

Problemerne ligger nede ved query med målscoreren, målminuttet osv.
samt gule og røde kort...
Avatar billede detox Nybegynder
29. juli 2003 - 00:02 #9
Hmm, jeg synes du burde lave array's som: goal_minut[$i],i stedet for fx: goal_minut.$i
Avatar billede the_guv Nybegynder
29. juli 2003 - 00:04 #10
ja, men det har jeg ikke den helt store erfaring med :(

Dvs. jeg føler mig ikke helt sikker på det område, hvordan vil det så fungere, hvis jeg brugte arrays?
Avatar billede detox Nybegynder
29. juli 2003 - 00:15 #11
Næsten som det gør nu, men det vil være lettere at håndtere.
Anyway her er en slåfejl i skrivkamp:
goal_minut.$1
skal vel være:
goal_minut.$i
Prøv fx at debugge, ved at udskrive nogle af dine variabler i koden lige inden de query's der driller. På den måde kan du indsnævre det og formentlig finde synderen.
Avatar billede the_guv Nybegynder
29. juli 2003 - 00:55 #12
ja, den er rettet.
Jeg har prøvet debut, fvariablerne har ingen værdi, og kommer kun en gang...
echo "goal_minut:$goalminut";
        echo "$stilling: $goal_stilling";
        echo "united: $goal_united";
        echo "snabeldyr: $goal_scorer";
        echo "kampid: $kampid";
Avatar billede the_guv Nybegynder
29. juli 2003 - 00:57 #13
Ok, den kommentar fuckede lige lidt op...sådan her ville jeg skrive:
ja, den er rettet.
Jeg har prøvet debut, fvariablerne har ingen værdi, og kommer kun en gang...
        echo "goal_minut:$goalminut";
        echo "stilling: $goal_stilling";
        echo "united målscorer: $goal_united";
        echo "målscorer: $goal_scorer";
        echo "kampid: $kampid";

Det den printer ud er: goal_minut: stilling: united målscorer: målscorer: kampid: 1
Avatar billede macane Nybegynder
29. juli 2003 - 12:13 #14
Dit problem ligger i din variable navngivning.
ændre den fra goal_minut.$i til goal_minut$i så vil POST overfører din data korrekt.

Med venlig hilsen
Christian
Avatar billede the_guv Nybegynder
29. juli 2003 - 12:19 #15
ja, nu virker det satme...
Jeg havde nu kaldt mine variable goalminut£i i starten, men der virkede det ikke...

anyway, den gemmer kun et row stadig...hvordan gør jeg så den gemmer 3 rows, hvis jeg fx. har indtastet 2 mål og et gult kort?
Avatar billede macane Nybegynder
29. juli 2003 - 12:45 #16
I skrivkamp.php
omkring linie 90 er denne linie
echo "<input type=\"hidden\" name=\"goalsantal\" value=\"$i\">";
ændre til
echo "<input type=\"hidden\" name=\"goalsantal\" value=\"$goals\">";
og indsæt denne linie før ovenstående
$goals = $_POST['goals'];

Problemet du ikke fik goals dataen overført rigtigt. $i gik i nul Før den blev overført.

MVH
Christian
Avatar billede the_guv Nybegynder
29. juli 2003 - 19:55 #17
Så virker det næsten!
min if sætning virker dog ikke, nu har jeg også prøvet med isset, og den ser således ud:
$goalchecked = $_POST["goalchecked$i"];
    if (isset($goalchecked))
    {
    mysql_query("INSERT INTO goals (kampid, goaltime, goalscorer, goalresult) VALUES (\"$kampid\", \"$goalminut\", \"$goal_scorer\", \"$goal_stilling\")") or die (mysql_error()); 
    } else { 
    mysql_query("INSERT INTO goals (kampid, goaltime, goalscorer_id, goalresult) VALUES (\"$kampid\", \"$goalminut\", \"$goal_united\", \"$goal_stilling\")") or die (mysql_error()); 
    }  } 


Den udfører kun nummer 2 query, også selv jeg har sat et flueben ved checkboxen...
Avatar billede nikolajdu Nybegynder
30. juli 2003 - 08:38 #18
Jeg tror sørme fejlen er her : echo "Forkert ID! Er du et scouse bastard?\n";

tsk tsk :))

Sorry ku´ ik la´ være - Vi bøffer jer på John Bull... :))
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