Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno PHP a update v MySQL - data se neaktualizují ale smažou v databázi

Zdravím všechny.

Nepomohl by mi někdo s mým problémem který spočívá že můj kod na update dat funguje tak z 30%. Viz kod

<html>
<head>
<title>UPDATE</title>
</head>
 
<body>
<?php

 $confid = intval($_GET['conf']);
$teams = $_POST['teams'];
$jmeno = $_POST['jmeno'];
$playerid = $_POST['playerid'];
 
if($_POST['update'])
{
mysql_query("UPDATE hraci SET teams = '".$teams."', jmeno = '".$jmeno."'WHERE confid=$confid AND playerid=$playerid ");
 
}
 
$sql = mysql_query("SELECT * FROM hraci WHERE confid=$confid limit 1")or die(mysql_error());
 
while($row = mysql_fetch_array($sql))
{
  
  echo "<form method='post'>";
  echo "<input type='text' name='nazev' value=".$row['teams'].">";
  echo "<input type='text' name='kod' value=".$row['jmeno'].">";
  echo "<input type='hidden' name='playerid' value=".$row['playerid'].">";
  echo "<input type='submit' name='update'>";
  echo "</form>";
 
}
?>
</body>
</html>
 

Vypíše mi daný věci který chci aktualizovat když je přepíši a dám odeslat tak se data neaktualizují ale smažou v databázy.
Nevíte kde je chyba.

Změna předmětu, původně: PHP update (host)

Předmět Autor Datum
Nechápu, proč by se data měla smazat, to se mi nějak nezdá. Doplň za provedení toho UPDATE výpis ch…
host 09.04.2012 19:45
host
Kliknu na odeslat a skočí Query was empty
Gizzer 09.04.2012 19:47
Gizzer
SELECT * FROM hraci WHERE confid=$confid limit 1 Tohle ti přečte jeden řádek z tabulky, opravdu to…
Wikan 09.04.2012 19:48
Wikan
ano jde o update jednoho řádku
Gizzer 09.04.2012 19:50
Gizzer
Ale tohle ti přečte jeden libovolný řádek, ne ten který jsi právě updatoval.
Wikan 09.04.2012 19:51
Wikan
Když dám toto $sql = mysql_query("SELECT * FROM `hraci` WHERE confid=$confid AND playerid=$playerid…
Gizzer 09.04.2012 19:57
Gizzer
ze ty mas v confid promene nejakou prasarnu...
AZOR 09.04.2012 20:01
AZOR
Kde se vezme $plyerid, pokud není odeslán formulář?
ws79 09.04.2012 20:04
ws79
confid je číslo konference playerid je číslo řádku změnil jsem kod na <?php $confid = intval($_GET…
Gizzer 09.04.2012 20:11
Gizzer
Ale ani tak se to neaktualizuje. Vždy se nahraje teams a jmeno prázdný wtf? takze snad UPDATE probe…
AZOR 09.04.2012 20:15
AZOR
teď jsem tě nějak nepochopil. Najedu na formulář a zobrazí se mi daný tým a jméno. Přepíšu to na ně…
Gizzer 09.04.2012 20:20
Gizzer
vyřešeno :D chyba byla zde echo "<input type='text' name='teams' value=".$row['teams'].">"; echo "…
Gizzer 09.04.2012 20:21
Gizzer
Mělo by být : $teams = mysql_real_escape_string ($_POST['teams']); $jmeno = mysql_real_escape_strin… poslední
hynajs 10.04.2012 11:25
hynajs

Když dám toto

$sql = mysql_query("SELECT * FROM `hraci` WHERE confid=$confid AND playerid=$playerid  ")or die(mysql_error());

Tak mi to hází chybu

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

confid je číslo konference
playerid je číslo řádku

změnil jsem kod na

<?php

 $confid = intval($_GET['conf']);
  $playerid = intval($_GET['playerid']);
$teams = $_POST['teams'];
$jmeno = $_POST['jmeno'];

 
if($_POST['update'])
{
mysql_query("UPDATE hraci SET teams = '$teams', jmeno = '$jmeno'WHERE confid=$confid AND playerid=$playerid ")or die(Mysql_error());
 
 
}
 
$sql = mysql_query("SELECT * FROM `hraci` WHERE confid=$confid AND playerid=$playerid limit 1 ")or die(mysql_error());
 
while($row = mysql_fetch_array($sql))
{
  
  echo "<form method='post'>";
  echo "<input type='text' name='nazev' value=".$row['teams'].">";
  echo "<input type='text' name='kod' value=".$row['jmeno'].">";
  echo "<input type='submit' name='update' value='Edituj' >";
  echo "</form>";
 
}
?>

Ale ani tak se to neaktualizuje.
Vždy se nahraje teams a jmeno prázdný

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