Avatar billede jokeren25 Nybegynder
13. februar 2006 - 22:25 Der er 10 kommentarer og
2 løsninger

Indsæt flere rækker på samme tid

Hej experter,

på mit lille fodboldsite har jeg rodet med et statestik system og er kommet frem til en løsning der også virker, men det er ikke optimalt. Eks kan ses her: http://www.metrostars.dk/newstest/admin/stats.edit2.php

Det jeg gerne vil er, at jeg kan opdatere alle spillere på en gang således man slipper for at opdatere hver enkelt spiller efter man har indtastet en data.

Min kode ser således ud: (stats.edit2.php)

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../stylesheet.css">
<?php
//include('header.admin.php');
?>
</head>

<body bgcolor="#FFFFFF">
<table width="700" align="center" cellpadding="0"  vspace="0" bgcolor="#FFFFFF" style="border-left: #000000 2px solid; border-right: #000000 2px solid;"><tr><th align="left">
<h4>

<h1>Opdater stats</h1>


  <?php
include_once('../inc.config.php');

mysql_connect($cfg['mysql']['host'],$cfg['mysql']['username'],$cfg['mysql']['password']);
mysql_select_db($cfg['mysql']['database']);



$query = mysql_query("SELECT * FROM stats ORDER BY nummer") or die(mysql_error());

while ($row = mysql_fetch_assoc($query)) {
    echo '<form method="post" action="form.handle.php"><input type="hidden" name="referer" value="edit_stats">';
    echo '<input type="hidden" name="id" value="'.$row['id'].'">';
    echo '<input type="hidden" name="navn" value="'.$row['navn'].'" >';
    echo '<input type="hidden" name="nummer" value="'.$row['nummer'].'">';
    echo '<strong>'.$row['navn'].'</strong>&nbsp;-&nbsp;';
    echo 'Kampe<input type="text" name="kampe" value="'.$row['kampe'].'" style="width: 15px">&nbsp;';
    echo 'Mål<input type="text" name="maal" value="'.$row['maal'].'" style="width: 15px">&nbsp;';
    echo 'Assist<input type="text" name="assist" value="'.$row['assist'].'" style="width: 15px">&nbsp;';
    echo 'Gulekort<input type="text" name="gulkort" value="'.$row['gulkort'].'" style="width: 15px">&nbsp;';
    echo 'Rødekort<input type="text" name="rodkort" value="'.$row['rodkort'].'" style="width: 15px">&nbsp;';
    echo 'MoM<input type="text" name="mom" value="'.$row['mom'].'" style="width: 15px">&nbsp;';
    echo '<input type="submit" value="Opdater stats"></form>';
    echo '<br><br>';
}

?>

</h4>
</th></tr></table>
<?php
include('bottom.php');
?>
</body>
</html>

og form handleren: (form.handle.php)

if ($_POST['referer'] == 'edit_stats') {
mysql_query("UPDATE stats SET navn='".$_POST['navn']."', nummer='".$_POST['nummer']."', kampe='".$_POST['kampe']."', maal='".$_POST['maal']."', assist='".$_POST['assist']."', gulkort='".$_POST['gulkort']."', rodkort='".$_POST['rodkort']."', mom='".$_POST['mom']."' WHERE id=".$_POST['id']."") or die(mysql_error());
    header("Location: stats.edit2.php");
Avatar billede cyberjelle Nybegynder
13. februar 2006 - 22:52 #1
Jeg har ikke vildt meget lyst til at hjælpe - desværre. Men nøjes du ikke med at lave en form, med spillerne i en dropdown, noget javascript, der fylder felterne ud ved valg af spiller, og så bare udskriver alle spillerne nedenunder? Bare en lille tanke
Avatar billede cyberjelle Nybegynder
13. februar 2006 - 22:53 #2
Sorry... Hvis det virker som om jeg ikke gider... HAr bare travlt...
Avatar billede jokeren25 Nybegynder
13. februar 2006 - 23:06 #3
Fair nok ;)
Avatar billede tjens Nybegynder
13. februar 2006 - 23:38 #4
Du kan sætte løbenummer på alle dine felters navne i form'en, og så rykke Form start og submitknap uden for læseloopet.
Så skal du nok tilføje en hidden count så du ved hvor mange records der var.
Og i form.handle.php, skal du så loope count gange og aflæse navn1 ... UPDATE ... navn2 ... UPDATE og så videre. 
Ved ikke om det er OK formuleret fra min side.
Avatar billede jokeren25 Nybegynder
14. februar 2006 - 00:10 #5
Har lavet følgende kode men en spillers data bliver updateret i alle databasens felter??

<?php

include_once('inc.config.php');



mysql_connect($cfg['mysql']['host'],$cfg['mysql']['username'],$cfg['mysql']['password']);

mysql_select_db($cfg['mysql']['database']);



echo '<form method="post" action="test2.php"><input type="hidden" name="referer" value="edit_stats">';



$query = mysql_query("SELECT * FROM stats ORDER BY nummer") or die(mysql_error());

$count = 0;

while ($row = mysql_fetch_assoc($query)) {

   
    echo '<input type="hidden" name="id' . $count . '" value="'.$row['id'].'" style="width: 45px">';

    echo '<input type="hidden" name="navn' . $count . '" value="'.$row['navn'].'" style="width: 45px">';

    echo '<input type="hidden" name="nummer' . $count . '" value="'.$row['nummer'].'" style="width: 45px">';

    echo '<strong>'.$row['navn'].'</strong>&nbsp;-&nbsp;';

    //echo 'Nr.<input type="text" name="nummer" value="'.$row['nummer'].'" style="width: 15px">';

    echo 'Kampe<input type="text" name="kampe' . $count . '" value="'.$row['kampe'].'" style="width: 15px">&nbsp;';

    echo 'Mål<input type="text" name="maal' . $count . '" value="'.$row['maal'].'" style="width: 15px">&nbsp;';

    echo 'Assist<input type="text" name="assist' . $count . '" value="'.$row['assist'].'" style="width: 15px">&nbsp;';

    echo 'Gulekort<input type="text" name="gulkort' . $count . '" value="'.$row['gulkort'].'" style="width: 15px">&nbsp;';

    echo 'Rødekort<input type="text" name="rodkort' . $count . '" value="'.$row['rodkort'].'" style="width: 15px">&nbsp;';

    echo 'MoM<input type="text" name="mom' . $count . '" value="'.$row['mom'].'" style="width: 15px">&nbsp;';

    echo '<br><br>';

   

    $count++;

}


echo '<input type="submit" value="Opdater stats"></form>';

?>



<?php

if ($_POST['referer'] == 'edit_stats') {

    $iter = 0;

    while ($iter < $count ) {

    mysql_query("UPDATE stats SET
   
    navn='".$_POST['navn' . $iter]."',
    nummer='".$_POST['nummer' . $iter]."',
    kampe='".$_POST['kampe' . $iter]."',
    maal='".$_POST['maal' . $iter]."',
    assist='".$_POST['assist' . $iter]."',
    gulkort='".$_POST['gulkort' . $iter]."',
    rodkort='".$_POST['rodkort' . $iter]."',
    mom='".$_POST['mom' . $iter]."' ")
    or die(mysql_error("fackar"));
               
    $iter++;

    }
}

?>
Avatar billede cyberjelle Nybegynder
14. februar 2006 - 10:17 #6
Du skal have en kolonne i din SQL, der er unik for hver spiller brug fx 'nummer'. I slutningen af din SQL Query skriver du så
WHERE nummer = ".$_POST['nummer' . $iter]."' "
Så fortæller du databasen, at den kun skal opdatere den række, som du identificerer ved nummer = spilletnummer. Du skal så slette rækken med
nummer='".$_POST['nummer' . $iter]."',
Avatar billede jokeren25 Nybegynder
14. februar 2006 - 14:26 #7
Har et problem med SQL syntaxen som jeg ikke kan finde:

mysql_query("UPDATE stats SET
   
    navn='".$_POST['navn' . $iter]."',
    kampe='".$_POST['kampe' . $iter]."',
    maal='".$_POST['maal' . $iter]."',
    assist='".$_POST['assist' . $iter]."',
    gulkort='".$_POST['gulkort' . $iter]."',
    rodkort='".$_POST['rodkort' . $iter]."',
    mom='".$_POST['mom' . $iter]."'
    WHERE nummer = ".$_POST['nummer' . $iter]."' ")
    or die(mysql_error());

et eller andet fejler!!!
Avatar billede cyberjelle Nybegynder
14. februar 2006 - 15:38 #8
Prøv at echo din string i stedet for at sende den til mySQL.
Dvs.
echo "UPDATE stats SET ......";
Så kan du jo se hvad der bliver sendt til SQL.
Avatar billede jokeren25 Nybegynder
14. februar 2006 - 23:44 #9
Nu funger det! Tak for hjælpen cyperjelle. Læg et svar så er der point!

Således kom koden til at se ud hvis der er andre der kan bruge det til noget.

<?php

include_once('../inc.config.php');



mysql_connect($cfg['mysql']['host'],$cfg['mysql']['username'],$cfg['mysql']['password']);

mysql_select_db($cfg['mysql']['database']);



echo '<form method="post" action="stats.edit.php"><input type="hidden" name="referer" value="edit_stats">';



$query = mysql_query("SELECT * FROM stats ORDER BY nummer") or die(mysql_error());

$count = 0;

while ($row = mysql_fetch_assoc($query)) {

   
    echo '<input type="hidden" name="id' . $count . '" value="'.$row['id'].'" style="width: 45px">';

    echo '<input type="hidden" name="navn' . $count . '" value="'.$row['navn'].'" style="width: 45px">';

    echo '<input type="hidden" name="nummer' . $count . '" value="'.$row['nummer'].'" style="width: 45px">';

    echo '<table width="150" border="0" cellspacing="0" cellpadding="0"><tr><th scope="col"><strong>'.$row['navn'].'</strong></th></tr></table>';
   


    //echo 'Nr.<input type="text" name="nummer" value="'.$row['nummer'].'" style="width: 15px">';

    echo 'Kampe&nbsp;<input type="text" name="kampe' . $count . '" value="'.$row['kampe'].'" style="width: 25px">&nbsp;';

    echo 'Mål&nbsp;<input type="text" name="maal' . $count . '" value="'.$row['maal'].'" style="width: 25px">&nbsp;';

    echo 'Assist&nbsp;<input type="text" name="assist' . $count . '" value="'.$row['assist'].'" style="width: 25px">&nbsp;';

    echo 'Gulekort&nbsp;<input type="text" name="gulkort' . $count . '" value="'.$row['gulkort'].'" style="width: 25px">&nbsp;';

    echo 'Rødekort&nbsp;<input type="text" name="rodkort' . $count . '" value="'.$row['rodkort'].'" style="width: 25px">&nbsp;';

    echo 'MoM&nbsp;<input type="text" name="mom' . $count . '" value="'.$row['mom'].'" style="width: 25px">&nbsp;';

    echo '<br><br>';

   

    $count++;

}


echo '<input type="submit" value="Opdater stats"></form>';

?>



<?php

if ($_POST['referer'] == 'edit_stats') {

    $iter = 0;

    while ($iter < $count ) {
   
       
mysql_query("UPDATE stats SET
    id='".$_POST['id' . $iter]."',
    navn='".$_POST['navn' . $iter]."',
    kampe='".$_POST['kampe' . $iter]."',
    maal='".$_POST['maal' . $iter]."',
    assist='".$_POST['assist' . $iter]."',
    gulkort='".$_POST['gulkort' . $iter]."',
    rodkort='".$_POST['rodkort' . $iter]."',
    mom='".$_POST['mom' . $iter]."'
    WHERE nummer = '".$_POST['nummer' . $iter]."' ")or die(mysql_error());
   
   
   
       
    $iter++;
    }

echo '<br><br>'.'statestiken er nu opdateret!'.'<a href="stats.edit.php">Refresh for at se resultat</a>';
}

?>
Avatar billede tjens Nybegynder
15. februar 2006 - 10:46 #10
Godt at se, at min ide kunne bruges.
Avatar billede cyberjelle Nybegynder
15. februar 2006 - 11:36 #11
svar
Avatar billede cyberjelle Nybegynder
15. februar 2006 - 11:37 #12
hovsa
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