Autor Zpráva
Tyfon
Profil *
Dobrý den, potřeboval bych poradit s kódem, jsem v php/mysql začátečník a následující kód je sice funkční ale hází mi pod kód chybu

Notice: Undefined variable: Submit in /home/webs/... .php on line 42
Notice: Undefined variable: result1 in /home/webs/... .php on line 49

Díky mockrát za pomoc


<?php
$tbl = "users";
$sql="SELECT * FROM $tbl";
$result=mysql_query($sql);

$count=mysql_num_rows($result);
?>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<form name="form1" method="post" action="">
<tr>
<td>
<table width="500" border="0" cellspacing="1" cellpadding="0">


<tr>
<td align="center"><strong>Id</strong></td>
<td align="center"><strong>Jméno</strong></td>
<td align="center"><strong>Datum</strong></td>
<td align="center"><strong>Částka</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center"><? $user_id[]=$rows['user_id']; ?><? echo $rows['user_id']; ?></td>
<td align="center"><input name="user_name[]" type="text" id="user_name" value="<? echo $rows['user_name']; ?>"></td>
<td align="center"><input name="datum[]" type="text" id="datum" value="<? echo $rows['datum']; ?>"></td>
<td align="center"><input name="castka[]" type="text" id="castka" value="<? echo $rows['castka']; ?>"></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center"><input type="submit" name="Submit" value="Odeslat"></td>
</tr>
</table>
</td>
</tr>
</form>
</table>
<?php
if($Submit){
for($i=0;$i<$count;$i++){ 
$sql1="UPDATE $tble SET castka='$castka[$i]', datum='$datum[$i]' WHERE user_id='$user_id[$i]'";
$result1=mysql_query($sql1);
}
}

if($result1){
header("location:vyplaty.php");
}
?>
Segi_L
Profil
Není to chyba ale oznámení.
Pristupuješ k premennej, ktorá nebola nijak vytvorená.

<?php
$submit = isset($_POST['submit']);
$result1 = false;

if($Submit){
for($i=0;$i<$count;$i++){ 
$sql1="UPDATE $tble SET castka='$castka[$i]', datum='$datum[$i]' WHERE user_id='$user_id[$i]'";
$result1=mysql_query($sql1);
}
}

if($result1){
header("location:vyplaty.php");
}
?>


A pokud máš všechny dotazy tímto stylem, koleduješ si o sql injection
maaaca
Profil
Ahoj, mám potíže se stejným skriptem, tak oživím toto vlákno.
Mám tento skript, který jsem si upravil k obrazu svému, ale nic to nedělá. Jen po poslední úpravě maže záznam v databázi, který jsem tam pokusně vložil přes phpmyadmin.
Ještě mi nefunguje závěrečné přesměrování, resp. to vypíše chybu Warning: Cannot modify header information... Ale to mě zatím až tak netrápí.

<?php

        require("nastaveni.php");
    $pripoj=MySQL_Connect($SQL_Server, $SQL_Uzivatel, $SQL_Heslo) or Die(MySQL_Error());
    MySQL_Select_Db($Databaze) or Die(MySQL_Error());
    mysql_query("SET CHARACTER SET utf8");

    $articleid = $_GET["articleid"];
      $result = mysql_query("SELECT * FROM tbl_images WHERE articleid = '$articleid' ORDER BY `id` ASC");
    $count = mysql_num_rows($result); 
      
  ?>
  <form name="form1" method="post" action="">  
   <table>
      <?php while($rows=mysql_fetch_array($result)){ ?>  
        <tr>
          <td width="5%"><strong><?php $id[]=$rows['id']; ?><? echo $rows['id']; ?></strong>
          </td>
          <td width="20%"><img src="../uploads/<?php echo $rows['tripid']; ?>/<?php echo $rows['articleid']; ?>/thumb/<?php echo $rows['image_name']; ?>" />
          </td>
          <td width="25%">
            <input name="title[]" type="text" id="title" value="<? echo $rows['title']; ?>">
          </td>          
        </tr>  
    <?php
    }
    ?>
    </table>
    <input type="submit" name="submit" value="Submit" />    

  </form>
    

  <?php
  $submit = isset($_POST['submit']);
  $result1 = false;
   
  if($submit){
  for($i=0;$i<$count;$i++){ 
  $sql1="UPDATE tbl_images SET title='$title[$i]' WHERE id='$id[$i]'";
  $result1=mysql_query($sql1);
  }
  }
   
  if($result1){
  header("location:index.php");
  }
  ?>

Poradíte mi prosím, co by mohlo být špatně?
Lonanek
Profil
Nikde nevidím definování proměnné $title[], kterou používáte na ř.40.
maaaca
Profil
Lonanek:
Ano, to se mi taky právě nezdá, čekal bych tam nějaký skript, který to doluje ze POSTu. Ale když se podívám do původního skriptu nebo na ten příklad od Tyfona, tak tam to také není definované.
juriad
Profil
maaaca:
V tom tutoriálu je chyba snad na každé druhé řádce.

Snažíš se napsat skript, který bude umět najednou upravovat titulky ke všem fotkám u článku?
maaaca
Profil
juriad:
Ano. Pokud mne navedeš na nějaký lepší, tak budu jedině rád. V podstatě se nemůžu dostat přes to, jak hromadně udělat update toho titlu.
visionic
Profil *
<?

// Udaje
$host = "localhost";
$user = "db-user";
$pwd = "password";
$db = "db-name";

// spojení s databází
$conn = mysql_connect($host, $user, $pwd) or system_error('ERROR: Can not connect to MySQL-Server');
mysql_select_db($db) or system_error('ERROR: Can not connect to database "'.$db.'"');

// variables
$tablename = 'nazev_tabulky_obrazku';
$articleid = $_GET['id']; //to je z linku např.: www.tvoje.cz/?id=5
$cesta = 'images/articles/';

// formulář byl odeslán
if ($_POST['submit']=='odeslat')
{

   $id = $_POST['id'];
   $tittle = $_POST['tittle'];
  
   for($i=0;$i<count($id);$i++){
   
        $sql = "UPDATE $tablename SET 'tittle'= '".$tittle[$i]."' WHERE 'image_id' = '".$id[$i]."' LIMIT 1"; //nezapomeň, že tittle a image_id jsou názvy sloupců
        $query = mysql_query($sql);
   
   }

}

// načtení
echo '<table>';
echo '<form method="post">';

$sql  = "SELECT * FROM $tablename articleid=$articleid ORDER BY id ASC";
$query = mysql_query($sql);
while ($row = mysql_fetch_assoc($query)) {

$obrazek = $cesta.$row['image_name'];

echo '<tr>';
echo '<td>';
echo '<img src="'.$obrazek.'">';
echo '</td>';
echo '<td>';
echo '<input type="text" name="tittle[]" value="">';
echo '<input type="hidden" name="id[]" value="'.$row['image_id'].'">';
echo '</td>';
echo '</tr>';

}

echo '<tr>';
echo '<td>';
echo '<input type="submit" value="odeslat" name="submit">';
echo '</td>';
echo '</tr>';

echo '</form>';
echo '</table>';

?>

nezkoušel jsem, napsal jsem z hlavy, takže určitě to pak dodělat o nějaké kontroly.


Na řádku 38 mám chybu
změnit na:

$sql = "SELECT * FROM $tablename WHERE articleid=$articleid ORDER BY id ASC";
maaaca
Profil
visionic:
Díky moc za přivedení na správnou cestu. Musel jsem si to ještě trochu doladit, ale už mi to funguje jak potřebuji :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: