Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Úprava kodu php ( update )

Zdravím osazenstvo poradny.
Potřeboval bych poradit.
Tento kod zapisuje do databáze statistiky hráčů.
Může se stát že hráč přestoupí do jiného týmy, v tom případě je třeba aby to prohledalo db jestli existuje hráč v daném týmu.
Pokud neexistuje tak ho to zapíše.
Příklad HRÁČ Crosby hraje za PIT a zapisují se mu statistiky za PIT v polovině sezony přestoupí např. do NYR a začnou se mu zapisovat statistiky za NYR.
Toto mi funguje správně.
Prohledá to db podle týmu a následně podle toho jestli v daném týmu existuje hráč. Pokud ne zapíše ho to.
Problém nastává při tom když v daném týmu už hráč existuje.
Mělo by ho to updatnout, což se nestane a do týmu ikdyž existuje ho to zapíše znovu.
Zde je kod, poradil by někdo? Musím ho rozdělit, text je příliš dlouhý

<?php
    if (isset($_FILES['fupload']) && $confid>0)
    {
  $slozka = "playerstaty/confid=$confid"; // Zde si napi‘te svojí složku, do které se budou soubory ukádat (bez lomítka)
    $cil = $slozka . "/" .$_FILES['fupload']['name']; // Toto je proměnná $cil, která obsahuje adresář, kde se má soubor uploadovat a taky název souboru.
    $nazev_souboru = $_FILES['fupload']['tmp_name']; // Zjistí dočastné umístění souboru
    $copy = move_uploaded_file($nazev_souboru, $cil) // A tady zkopíruje soubor z dočastného umístění do cílového souboru a složky
      or die ("Přenesený soubor nelze zkopírovat"); // A pokud se nepovede, tak vypí‘e tuto hlá‘ku
    chmod ($cil, 0777); // Je‘tě na soubor vyhodíme funkci chmod, která změní jeho práva na maximum, pokud by soubor psal chybu změňte 0644 na 0777
// do této chvíle se řešil upload souboru 
    if($copy == true)    //pokudp roběhl uspěšně zapisujeme do databáze
    
    {
    include "settings.php";
     $confid=(int)$_GET['confid'];
     $stats="playerstat";
     
     $filename=$cil;

     $handle = fopen("$filename", "r");

Předmět Autor Datum
while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) // cyklus který prochází jednotlivé řádky C…
Gizzer 04.10.2012 16:00
Gizzer
Podmínka WHERE Team AND Name je přinejmenším podivná.
Wikan 04.10.2012 16:56
Wikan
Stačilo upravit tento řádek: $exist_hrac = mysql_result(mysql_query("SELECT COUNT(*) FROM $stats WH… poslední
Gizzer 04.10.2012 16:59
Gizzer
     while (($data = fgetcsv($handle, 1000, ',')) !== FALSE)    // cyklus který prochází jednotlivé řádky CSV souboru

  {
$rozdeleni_casu = explode(":",$data[3]);
$time= ($rozdeleni_casu[0]*60 + $rozdeleni_casu[1]);
   // i pro multi-byte (napr. UTF-8)
$prevodni_tabulka = Array(
  "'"=>"_"
);

$upraveny_text = strtr($data[0], $prevodni_tabulka);    //tady upravuju jméno aby bylo v mnou požadovaném tvaru

    // tu se dívám do databáze jeslti daný hráč už v databázi existuje.
    $exist_hrac = mysql_result(mysql_query("SELECT COUNT(*) FROM $stats  WHERE Team AND Name = '$upraveny_text' AND confid=$confid"), 0);
//neexistuje -> potom ho vytvoříme pomocí insert
    if($exist_hrac==0){
    if ($upraveny_text != "Player Name" && $data[1] != "-"&& $data[2] != "-"&& $data[3] != "-"&&  $data[5] != "-"&& $data[6] != "-"&& $data[8] != "-"&& $data[9] != "-"&& $data[10] != "-")
    {
    $import2="INSERT INTO $stats (confid,teamid,Name,Team,Pos,P,G,A,GP,Time,PIMS,plusminus,PPG,SHG,Shoot,Hits,ID) VALUES ('$confid', '$teamid', '$upraveny_text', '$data[1]', '$data[2]', '$data[4]'+'$data[5]', '$data[4]', '$data[5]',1,'$time','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]','0')";
    mysql_query($import2) or die(mysql_error());
    }
    }
    //existuje -> potom ho aktualizujeme pomocí update
    else {
    if ($upraveny_text != "Player Name" && $data[2] == "Player" && $data[1] != "-"&& $data[2] != "-"&& $data[3] != "-"&& $data[5] != "-"&& $data[6] != "-"&& $data[8] != "-"&& $data[9] != "-"&& $data[10] != "-")
    {
    $import="UPDATE $stats SET Time=Time+$time,P=P+$data[4]+$data[5], G=G+$data[4], A=A+$data[5], GP=GP+1, PIMS=PIMS+$data[6], plusminus=plusminus+$data[7], PPG=PPG+$data[8], SHG=SHG+$data[9], Shoot=Shoot+$data[10], Hits=Hits+$data[11] WHERE Name='$upraveny_text' AND confid=$confid";
    mysql_query($import) or die(mysql_error());
    }
    else
    {
     if ($upraveny_text != "Player Name" && $data[2] == "Goalie" && $data[1] != "-"&& $data[2] != "-"&& $data[3] != "-"&& $data[5] != "-"&& $data[6] != "-"&& $data[8] != "-" && $data[10] != "0"&& $data[9] != "-"&& $data[10] != "-")
      {
    $import="UPDATE $stats SET  Time=Time+$time,GP=GP+1, PPG=PPG+$data[8], Shoot=Shoot+$data[10] WHERE Name='$upraveny_text' AND confid=$confid";
    mysql_query($import) or die(mysql_error());
      }
    }
        }
    
    }
     fclose($handle);

     print "Výsledek úspěšně zapsán";}
     
  }
?>

Zpět do poradny Odpovědět na původní otázku Nahoru