« 1 2 3 »
Autor Zpráva
roman_an1
Profil
někde v tom dotazu DELETE je chyba já už si nevím rady

<?php
  
   
  
   session_start();
 
  $login = $_SESSION['login'] ;
  
 

 $query =  "SELECT * FROM vyrobky WHERE login = '$login'";
  $vysledek = mysql_query($query);
 
  echo "<table width=50% border=1 rules=none>";
 echo mysql_error(); 
while($clen = mysql_fetch_object($vysledek)) {
 
  
  echo "<tr width='30%'>";  
   
   /*
    echo "<td width='10%'>" . $clen->login . "<td width='10%'> " . $clen->heslo . "<td width='10%'> " . $clen->email . "</td>";
     */
      
     echo "<td width='2%'>" . $clen->cislo . "</td>"; 
      echo "<td width='2%'>" . $clen->id2 . "</td>";   
    
    
     echo "<td width='10%'>" . $clen->nazev . "</td>";
     
     if (isset($_POST['id'])) { 
     
      
      
     
       
  echo "</tr>";
  
}

    
   $sql= mysql_query("DELETE FROM vyrobky WHERE id2 = '$id'") ;
  
  }

echo "</table>";
 
 
  


 



  
?>






<form action="php.php" method="post">
    <input type="hidden" name="id" value="<?php echo $id2; ?>"><input type="submit" value="smazat">
</form>
panther
Profil
roman_an1:
na 42. ř. máš proměnnou $id, která neexistuje. Příště si ten dotaz vypiš, zjistíš, že ti tam něco chybí.
roman_an1
Profil
panther:
jo to vím..že v totom je chyba..ja už snad zkoušel všechny proměnné..protože už jsem úplně bezradný..a nevíte náhodou co by tam mělo být?
panther
Profil
roman_an1:
to musíš vědět ty, co chceš smazat. Pravděpodobně $_POST['id'].
roman_an1
Profil
panther:
to nejede..chci tím smazat řádek v tabulce podle toho vlastně jak mi to vypíše formulář
abc
Profil
roman_an1:
Zkus řádek 42 takto: $sql= mysql_query("DELETE FROM vyrobky WHERE id2 =".intval($_POST['id']));

Edit: chyběla mi tam závorka na konci
roman_an1
Profil
abc:
to zase napíše toto Parse error: syntax error, unexpected ';' in
abc
Profil
roman_an1:
Viz výše, chyběla mi tam závorka na konci.
Zkus toto:
$sql= mysql_query("DELETE FROM vyrobky WHERE id2 =".intval($_POST['id']));
roman_an1
Profil
roman_an1:
jo tam chybel konec zavorky :) diky


abc:
hehe teď jsem to akorat psal :)


a co to znamena to intval?


abc:
a mohu mít ještě jeden dotaz..jak to mám udělat aby se mi to vlasně hned i aktualizovalo? a nemusel jsem si tu stranku aktualizovat F5 aby se ukazala ta změna?


roman_an1:
jo tu aktualizaci uz jsem si taky doplnil :)
David Klouček
Profil
roman_an1:
a co to znamena to intval?
www.strejda-google.cz/?q=php+intval

Z manuálu PHP: "intval — Get the integer value of a variable"


.jak to mám udělat aby se mi to vlasně hned i aktualizovalo? a nemusel jsem si tu stranku aktualizovat F5 aby se ukazala ta změna?
Sice jsem nečetl předchozí příspěvky, ale asi hledáš přesměrování. To se realizuje odesláním hlavičky:
header('Location: http://mojeurl.cz/napriklad');
Musíš ji odesílat před veškerým výstupem.
roman_an1
Profil
David Klouček:
díky...tedkom se pokouším o editaci tak tam pak bude jak vypadat ten dotaz..ja vymyslel neco takoveho, ale to my to zmeni u vsech
$sql= mysql_query("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']));
mimochodec
Profil
roman_an1:
WHERE ID=14
roman_an1
Profil
mimochodec:
jo to vím..ale mě se jedná o to že zase u každého řádku mám tlačítko upravit tak aby to bralo podle toho :)
mimochodec
Profil
roman_an1:
jo to vím..ale mě se jedná o to že zase u každého řádku mám tlačítko upravit tak aby to bralo podle toho :)

1. Máš výpis položek tabulky
2. Pro každou z položek máš nějaký formulář s hiddenem, kterým předáváš ID.
3. Načítáš $_POST["delete"], a to nad tímto výpisem, nejlépe před jakýmkoliv vypsáním html, abys po akci mohl přesměrovat.
4. Provedeš akci, po ní přesměruješ zpátky na výpis.

Čemu přesně z tohoho nerozumíš?
roman_an1
Profil
mimochodec:
to s tím směrováním
smazání jsem pochopil
ale nechápu tu editaci..to uz neni hidden to uz mam normalně text ve formuláři do kterého se mi to i vpisuje..ale když to chci upravit tak mi to upraví u všech :)
jako nevím jak ješte totomu $sql= mysql_query("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi'])); přiřadit i že to má vzít danej řádek..pač nechápu jak bych to měl s intvalem zapsat
mimochodec
Profil
roman_an1:
ale nechápu tu editaci..to uz neni hidden to uz mam normalně text ve formuláři do kterého se mi to i vpisuje..ale když to chci upravit tak mi to upraví u všech :)

Když edituješ, postup je podobný.

2. Pro každou z položek máš nějaký formulář s hiddenem, kterým předáváš ID.
3. Načítáš $_POST["edit"]
4. Vypíšeš formulář a naplníš ho hodnotami příslušejícímí k tomu ID. Součástí formuláře je hidden, do kterého dáš ID.
5. Po odeslání uděláš UPDATE a přesměrování na výpis.
roman_an1
Profil
mimochodec:
jj tak jestli jsem to správně pochopil musí to být takto: ale to právě nevím jak mám zakompletovat to WHERE delaj mi tam nějakej bugr ty uvozovky

$sql= mysql_query("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) WHERE id2 = ".intval($_POST['id']) );

Moderátor panther: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
panther
Profil
roman_an1:
delaj mi tam nějakej bugr ty uvozovky
si je spočítej, nebo používej nějaký editor, který ti zvýrazní syntaxi. Nyní už to vidíš i zde na diskusi, kde ti chybí, co není červenohnědé.

$sql= mysql_query("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) . " WHERE id2 = ".intval($_POST['id']) );
mimochodec
Profil
//edit panther předbíhá.
roman_an1
Profil
roman_an1:
ale stejně mi to furt změni u všeho..nechápu proč..jo a používám editor..ale já netušil že se to spojuje tečkou
abc
Profil
roman_an1:
Začal bych tim, že to začneš psát ve více krocích tedy:
$sql = "UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) . " WHERE id2 = ".intval($_POST['id']) );
echo $sql; //co to tady vypíše?
$result = mysql_query($sql);
roman_an1
Profil
abc:
žádnou hlášku to nevypíše, jen já si v tom formuláři změním číslo, ale ono mi to přepíše zpátky na takovou co tam byla
abc
Profil
roman_an1:
Nemá to vypsat žádnou hlášku, ale ten dotaz, tedy:
UPDATE vyrobky set mnozstvi = 123 WHERE ID2 = 456

Když už jsme u toho, proč rovna id2? Jak vypadá struktura databáze?
roman_an1
Profil
id2, cislo, nazev, mnozstvi, login
mimochodec
Profil
roman_an1:
jen já si v tom formuláři změním číslo, ale ono mi to přepíše zpátky na takovou co tam byla

Nechceš tím říct spíš to, že to vypadá, jako by se ten update neprovedl, že ne?
roman_an1
Profil
jo neprovedl..nevím proč jsem to napsal tak blbě
abc
Profil
roman_an1:
no, a co ti teda vypíše tohleto?
$sql = "UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) . " WHERE id2 = ".intval($_POST['id']) );
echo $sql; //co to tady vypíše?
roman_an1
Profil
to samé..teda ale musel jsem si doplnit závorku 
$sql = ("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) . " WHERE id2 = ".intval($_POST['id']) );
echo $sql; //co to tady vypíše?
abc
Profil
roman_an1:
Tak jinak, uprav kód na:
$sql = ("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) . " WHERE id2 = ".intval($_POST['id']) );
echo 'Zacatek SQL>>>'. $sql . '<<<Konec SQL';

A napis potom, co je napsáno mezi Zacatek SQL>>> a <<<Konec SQL
roman_an1
Profil
Parse error: syntax error, unexpected '*' in
« 1 2 3 »

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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