Autor Zpráva
Goodman
Profil *
Zdravim splacal sem si malej scriptik jde o pridani, zobrazeni a smazani prispevku nejak se mi to nepodarilo rozbehnout neverim tomu ze to mam dobre tak zda by se tu nasel nekdo kdo by mi to pomohl opravit v co nejjednodusim kodu predek dik.
<? require "spojeni.php"; ?>
<form action=gbook.php>
<div align=center>
<table border="0" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<tr><td align="right">Jmeno:</td><td align="left"><input type=text name=jmeno></td></tr>
<tr><td valign="top">Text zpravy:</td><td><textarea name=text cols=30 rows=5></textarea></td></tr>
<tr><td colspan=2></td></tr>
<tr><td colspan=2 align="center"><input type=submit NAME="akce" value="Odeslat"></td></tr>
</table>
</div>
</form>
<table border=0 width=800  leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<?
$sql = MySQL_Query("SELECT * FROM $tabulka ORDER BY ID DESC LIMIT 20");
While($pole = mysql_fetch_array($sql)):
$id = $pole['id'];
$jmeno = $pole['jmeno'];
$text = $pole['text'];
$datum = $pole['datum'];
echo "<tr><td><b>$jmeno <A HREF=gbook.php?".SID."&akce=smazatprispevek=$id>Delete</A> </b>$datum</td></tr><tr><td>$text<br><hr><br></td></tr>"; 
endwhile;
mySQL_Close($conn);

function pridatprispevek()
{
if($jmeno=="" OR $text==""):
  echo"<center>Nezapomen se podepsat a vyplnit text.<br><a href=gbook.php>Zpět</a></center>";
else:
  $datum=date("H:i - d.m.Y");
  $sql = "INSERT INTO $tabulka  VALUES ('','$jmeno','$text','$datum')";
  $result = mysql_query($sql);
endif;
}

function smazatprispevek($id)
{
 $dotaz = MySQL_Query("DELETE FROM $tabulka WHERE id = '$id'");
 if(!$dotaz):
  echo "Nejde smazat… <A HREF=gbook.php>Zpět</A>";
 else:
  echo "Prispevek smazan… <A HREF=gbook.php>Zobrazit guestbook</A>";
 endif;
 $result = mysqlquery($sql);
}
?>
</table>

Moderátor Majkl578: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
Moderátor Majkl578: Titulek „PHP Sql rada“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
panther
Profil
Goodman:
co to nedělá? Jaké to píše chyby? Vstupy do dotazů ošetřuj (integery - (int), stringy - mysql_real_escape_string()), na 43. řádku ti chybí podtržítko.

Zapni si vypisování chyb, přidej si mysql_error() za každý z dotazů a pak sem přijď s přesnějšími informacemi. Zároveň se nauč kód odsazovat, kopírovat do text. editoru a odsazovat si ho sám nehodlám.
Goodman
Profil *
No tento soubor sem psal tak aby byl samostatny jedine co je knemu potreba je soubor spojeni.php ve kterem je jen ulozene pripojeni do databaze a nazev tabulky.
Soubor odvolava sam na sebe stim ze ma provest jen danou funkci
tento soubor nehaze zadne chyby jen to nic nedela kdy databazi naplnim rucne vse se vypise ale to je vse co to udela pridavat prispevek nepridava mazat ho taky nemaze. (nejsem primo nejaky expert pres programovani)
Keeehi
Profil
smaž
function pridatprispevek()
{

}

function smazatprispevek($id)
{

}
A už by to fungovat mělo. A nebo ty funkce zavolej. Takto jsi je jenom vytvořil.
Goodman
Profil *
jako ze je dat do samostatneho souboru ?
Keeehi
Profil
Nebo tam spíše přidej:
if($_GET["akce"]=="Odeslat")
    pridatprispevek($jmeno,$text);
elseif($_GET["akce"]=="smazat")
    smazatprispevek($id);
    
// + musíš ty funkce trochu upravit
function pridatprispevek($jmeno,$text)
{
    global $tabulka;
    
function smazatprispevek($id)
{
    global $tabulka;
Goodman
Profil *
tak to mam takto dane a ani takto to nechce frkat:
<? require "spojeni.php"; ?>
<form action=gbook.php>
<div align=center>
<table border="0" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<tr><td align="right">Jmeno:</td><td align="left"><input type=text name=jmeno></td></tr>
<tr><td valign="top">Text zpravy:</td><td><textarea name=text cols=30 rows=5></textarea></td></tr>
<tr><td colspan=2></td></tr>
<tr><td colspan=2 align="center"><input type=submit NAME="akce" value="Odeslat"></td></tr>
</table>
</div>
</form>
<table border=0 width=800  leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<?
$sql = MySQL_Query("SELECT * FROM $tabulka ORDER BY ID DESC LIMIT 20");
While($pole = mysql_fetch_array($sql)):
$id = $pole['id'];
$jmeno = $pole['jmeno'];
$text = $pole['text'];
$datum = $pole['datum'];
echo "<tr><td><b>$jmeno <A HREF=gbook.php?".SID."&akce=smazatprispevek=$id>Delete</A> </b>$datum</td></tr><tr><td>$text<br><hr><br></td></tr>"; 
endwhile;
mySQL_Close($conn);

function pridatprispevek($jmeno,$text,$datum)
{ 
 global $tabulka;
if($jmeno=="" OR $text==""):
  echo"<center>Nezapomen se podepsat a vyplnit text.<br><a href=gbook.php>Zpět</a></center>";
else:
  $datum=date("H:i - d.m.Y");
  $sql = "INSERT INTO $tabulka  VALUES ('','$jmeno','$text','$datum')";
  $result = mysql_query($sql);
endif;
}

function smazatprispevek($id)
{
 global $tabulka;
 $dotaz = MySQL_Query("DELETE FROM $tabulka WHERE id = '$id'");
 if(!$dotaz):
  echo "Nejde smazat... <A HREF=gbook.php>Zpět</A>";
 else:
  echo "Prispevek smazan... <A HREF=gbook.php>Zobrazit guestbook</A>";
 endif;
 $result = mysqlquery($sql);
}

if($_GET["akce"]=="Odeslat")
    pridatprispevek($jmeno,$text);
elseif($_GET["akce"]=="smazat")
    smazatprispevek($id);
?>
</table>
Majkl578
Profil
Goodman:
a ani takto to nechce frkat
Buď konkrétní - proč to nejde, hází to nějakou chybu atd.
Goodman
Profil *
mne to chybu neahzi mam to na webu link prilozim
Link zde

Moderátor Majkl578: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
Goodman
Profil *
Omlouvám se.
No psal sem že mi to žádnou chybu neháže mám to na webu link zde kde se nato múžesš podívat. je to to samé jak sem zde postl.
Majkl578
Profil
Kde nastavuješ ty proměnné co používáš na řádcích 49 a 51? Řekl bych, že to je ten problém.

Dám ti radu, než sem znovu napíšeš, zapni si vypisování chybových hlášek, včetně úrovně E_NOTICE. Pak bys na to možná přišel i sám.
Keeehi
Profil
if($_GET["akce"]=="Odeslat")
    pridatprispevek($_GET["jmeno"],$_GET["text"]);
elseif($_GET["akce"]=="smazatprispevek")
    smazatprispevek($_GET["id"]);

Ještě musíš ten kód zabezpečit! Někdo by se jím mohl dostat do databáze.

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: