Autor Zpráva
roman_an1
Profil
nevíte někdo jak by měl vypadat ten dotaz..je to za pomocí hiddenu..mám normálně na strance vypsaná data a vedle kazdého data mám tlačítko přidat..a potřebuju aby při stisknutí daného tlačítka se odeslal pouze ten řádek kterej je přiřazenej

 if(isset($_POST['pridat'])) {
 $mnozstvi = mysql_real_escape_string($_POST['mnozstvi']);
 $sql1=("select id_novinky from vyrobky_novinky WHERE id_novinky =".intval($_POST['id']));
$con=mysql_query($sql1);
if($con){
$sql2=("insert into vyrobky (id2,cislo,nazev, mnozstvi, cena, login, obrazek)    VALUES ('', '$clen->cislo','$clen->nazev', '$mnozstvi', '$clen->cena', '$login','$clen->obrazek')");
mysql_query($sql2);
 
}
}

 echo "<form action='navrh.php' method='post'>";
 echo "<td width='20%' align='right'><input type='hidden' name='id' value='$clen->id_novinky'> <input type='submit' name='pridat' value='Přidat'></form>";
mimochodec
Profil
Rozlišuj výpis dat / zobrazení formuláře / zpracování formuláře. Konkrétně v tomto kódu se snažíš o všechno najednou. Máš v tom neuvěřitelnej bordel. Tvoje poznámka "je to za pomocí hiddenu" mluví za všechno. Nastuduj si základy a pokus se trochu začít chápat, co který řádek v příkladech dělá.
roman_an1
Profil
mimochodec:
já chápu jak vše z toho funguje..jenom nevím jak mám uzpůsobit dotaz INSERT into tak aby to frčelo s hidden proto v tom mám i SELECT
mimochodec
Profil
input type='hidden' slouží k předání hodnoty pomocí formuláře. Hodnoty, která se nezobrazuje. INSERT slouží k přidání řádku do tabulky v databázi.
Co máš dál?

Všiml sis, že to tlačítko <> slouží k označování kódu, nikoliv normálního textu?
roman_an1
Profil
<> jo aha to se omlouvám

tak php vypadá takto

<?php  
 
  
     session_start();
 
  $login = $_SESSION['login'] ;
 
    
 $query =  "SELECT * FROM vyrobky_novinky";
 
 
    
$vysledek = mysql_query($query);

 
echo "<table width=80% border=1 rules=rows>";
 echo mysql_error(); 
 
while($clen = mysql_fetch_object($vysledek)) {

   
   if(isset($_POST['pridat'])) {
  
     $mnozstvi = mysql_real_escape_string($_POST['mnozstvi']);

 
   
 tady potřebuju vědět jak by měl vypadat ten insert
  
    
   }
   
   
 
  echo "<tr width='30%'>";  
      echo "<td width='2%'><a href='$clen->obrazek'><img src='$clen->obrazek' alt='fotka1' border='0' width='100' height'50'/></a></td>"; 
    
     echo "<td width='20%'>" . $clen->cislo . "</td>"; 
       
    
    
     echo "<td width='35%'>" . $clen->nazev .  "</td>";
   
   
  
  echo "<form action='navrh.php' method='post'>";
   echo "<td width='20%'><input type='text' name='mnozstvi' value='$clen->mnozstvi' size='3' />" ;
    echo "<td width='20%'> <strong> Cena: </strong>" . $clen->cena .  " Kč </td>";
   echo "<td width='20%' align='right'><input type='hidden' name='id' value='$clen->id_novinky'> <input type='submit' name='pridat' value='Přidat'></form>";
       
  echo "</tr>";
 
 
}
echo "</table>";  
 
    ?> 
mimochodec
Profil
Takže začneš cyklus pro výpis a v každém jeho průchodu, tzn. při vypsání každého jednoho řádku vyhodnotíš $_POST['pridat'] a když v něm něco bude, vložíš nový řádek? Určitě to chceš takhle?
roman_an1
Profil
nooo jo mě už takhlenc funguje..mazání, editace a teďkom potřebuju jenom přidávání


mimochodec:

třeba dotaz na delete vypadá tahlenc
 $sql= mysql_query("DELETE FROM vyrobky WHERE id2 =".intval($_POST['id'])); 

ale nevím jak zapsat pořádně ten insert
mimochodec
Profil
roman_an1:
ok tak to tam nech. Aspoň se poučíš na něčem reálném.

Dotaz bude asi takhle:
$sql2="insert into vyrobky (cislo,nazev, mnozstvi, cena, login, obrazek) VALUES ('$clen->cislo','$clen->nazev', '$mnozstvi', '$clen->cena', '$login','$clen->obrazek')";
Jestli to nezafunguje, dej vědět, jakou to generuje hlášku.
abc
Profil
roman_an1:
Případně si pročti nějaký tutoriál..
roman_an1
Profil
mimochodec:
jo toten dotaz jsem měl jako první když jsem to zkoušel..a ono to zapíše úplně všechno což nechci..ja potřebuju ať se mi to zapíše podle toho na kterém řádku kliknu ať se mi to přidá..jo a do toho tvojeho jsem dopsal mysql_query

a když vypíšu co to zapisuje tak to hodi '1''1' jako ono by to hodilo víckrát jedna..ale ja tam mám jenom 2 výrobky na zkoušku


abc:
jo to už jsem pročetl snad všechno co si týče toho co potřebuju a nic
abc
Profil
roman_an1:
A ten formulář vypadá jak?
roman_an1
Profil
 echo "<form action='navrh.php' method='post'>";
   echo "<td width='20%'><input type='text' name='mnozstvi' value='$clen->mnozstvi' size='3' />" ;
    echo "<td width='20%'> <strong> Cena: </strong>" . $clen->cena .  " Kč </td>";
   echo "<td width='20%' align='right'><input type='hidden' name='id' value='$clen->id_novinky'> <input type='submit' name='pridat' value='Přidat'></form>";
abc
Profil
roman_an1:
Tzn. teoreticky něco jako:
$sql = "insert into vyrobky (mnozstvi, ... ) VALUES ($_POST['mnozstvi'], ... )";

- pridej si ostatni pole
- osetri si proti SQL injection
roman_an1
Profil
abc:
no jako ono to tak nějako jako nejede

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

a dotaz jsem tedy upravil takto:

$sql = ("insert into vyrobky (cislo, nazev, cena, login, obrazek) VALUES ($_POST['cislo'], $_POST['nazev'],$_POST['cena'],$login,$_POST['obrazek'] )");

a zkoušel jsem i tento:
$sql = ("insert into vyrobky (cislo, nazev, cena, login, obrazek) VALUES ($_POST['cislo'], $_POST['nazev'],$_POST['cena'],$_POST['login'],$_POST['obrazek'] )");

a taky nejede
pcmanik
Profil
roman_an1:
skus si pozriet dokumentaciu, ta ti otvori oci. Alebo jednoducho zadaj do googlu php insert, a uvidis ako to ma vyzerat.
abc
Profil
roman_an1:
Musíš nad tim taky trošku přemýšlet a ne jen tupě opisovat, co ti tady někdo poradí.
1) v tom formuláři jsou inputy mnozstvi, id a ukladas cislo, nazev, cena, login, obrazek - tzn. budeš tam mít beztak prázdné řádky
2) přečti si ten tutoriál, na který jsem ti už jednou odkazoval
3) několik insertů najdeš i zde ve FAQ k databázím i PHP

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: