Autor Zpráva
rony
Profil *
Ahoj mam menší problém s vymazaním záznamu.
mam na tejto stranke http://xxx/spravy.php odkaz http://xxx/spravy.php?prijate_spravy . kde mi vypisuje zoznam mojich správ, od akého uživateľ. Ako daľši stpec si vyberiem id spravy co vložím do odkazu teda to bude
 <a href="spravy.php?prijate_spravy=id='.$id.'">Delete</a>'.'</td>'; 

robim niečo špatne? skuste ma naviesť na nejake riešenie. Diky
Spectator
Profil
Špatně zapisuješ řetězce. Moc to teda nechápu, ale asi chceš nějakým echem vypisovat odkaz a promennou v id.

 echo "<a href=\"spravy.php?prijate_spravy=$id&id=$id\">Delete</a></td>";
rony
Profil *
sorry reklep
  echo'<td>'.'<a href="spravy.php?prijate_spravy?id='.$id.'">Delete</a>'.'</td>'; 

takto to presne vyzera. učelom by malo byť to že po kliknuti na ten link sa mi zmaže záznam v databáze.. pričom id potom vyberám metodou get tu nasledne ulozim do premenej, ktorú použiem v mysql v príkaze na vymazanie
shaggy
Profil
Prečo tam spájaš reťazce?
Toto:
echo'<td>'.'<a href="spravy.php?prijate_spravy?id='.$id.'">Delete</a>'.'</td>'; 

sa dá zapísať takto:
echo'<td><a href="spravy.php?prijate_spravy?id='.$id.'">Delete</a></td>'; 

prečo to tak nerobíš?

+ aby ti to fungovalo, musíš mať adresu v href zapísanú takto (zjednodušene):
echo'<td><a href="spravy.php?prijate_spravy='.$id.'">Delete</a></td>'; 

alebo ak chceš mať dva parametre, tak:
echo'<td>'.'<a href="spravy.php?prijate_spravy&id='.$id.'">Delete</a>'.'</td>'; 

To sú základy, ktoré musíš vedieť predtým než sa pustíš do niečoho zložitejšieho (ako napr. mazanie z db).
rony
Profil *
taktiež som skúšal i toto ale nefunguje to .. vždy keď kliknem na ten odkaz.. otvori sa mi prazdna stránka;
Spectator
Profil
na te strance spravy.php musíš mít nějaké $_GET['id'] které následně vložíš do mysql_query() v rámci SQL příkazu DELETE....
po všech těchto úkonech je potřeba někam přejít, protože pokud je tam pouze nějaká mazací funkce, tak se nemůžě nic zobrazit.
Dej tam například header('location: index.php'); to je přesměrování
Sir Tom
Profil
rony:
Bacha na uvozovky a apostrofy - standard je psát nejdříve uvozovky (") a pak apostrofy ('), aby apostrof byl uvnitř uvozovek - ne naopak...
rony
Profil *
ono to aj robbí čo to má ale len ak je to priamo napisane a zobrazovane v spravy.php; možno je cyhba takato:
vytvoril som si premenne
$path1="nove_spravy";
$path2="prijate_spravy";
echo'<a href="spravy.php?'.$path1.'">Nové správy</a>';
echo"&nbsp;";
echo'<a href="spravy.php?'.$path2.'">Prijaté správy</a>';
$cesta=$_SERVER['QUERY_STRING']; 
echo"</br>";
if(($cesta)==$path1){
	 
	echo " </br>";
	napis_spravu();
}

if(($cesta)==$path2){$vymazat_spravy}

na poslednom riedku ako som napisal premennu $vymazat_spravy je kod ktorý to zabezpeči, teda mal by byť. pretože ak je na tomto mieste nespravi mi to nic.. kod kde vymazavam ked posuniem nad podmienky tak to slape.. ale ma to chybu ze to ma vyýpis kde nechcem
Tori
Profil
rony:
Kdybyste to porovnával s celým query stringem, tak už nemůžete přidat žádné další parametry. Dejte to nové/přijaté/smazat taky jako parametr:
echo '<a href="spravy.php?akce=nove">Nové správy</a>
  <a href="spravy.php?akce=prijate">Prijaté správy</a><br>';

switch ($_GET['akce'])  {
  case 'nove':
    napis_spravu();
    break;
  
  case 'vymazat':
    $id = intval($_GET['id']); // adresa: sprava.php?akce=vymazat&id=123456
    // smazani zpravy
    break;
  
  case 'prijate':
  default: 
    // ukaz prijate zpravy
    break;
} 
shaggy
Profil
Sir Tom:
Bacha na uvozovky a apostrofy - standard je psát nejdříve uvozovky (") a pak apostrofy (')
Bacha na dezinformácie - štandard je najprv si zistiť informácie a potom niečo písať. Toto, čo si napísal, pravda nie je.
Sir Tom
Profil
shaggy:
Bacha na dezinformácie - štandard je najprv si zistiť informácie a potom niečo písať. Toto, čo si napísal, pravda nie je.
Omlouvám se - v době, kdy jsem se učil PHP, mě na rozdíl mezi uvozovkami a apostrofy nikdo neupozornil. Asi jsem si myslel, že syntax bude stejná jako u jiných program. jazyků...


//Poprosil bych moderátory, jestli by nemohli zde mé příspěvky smazat - nesouvisí s problémem. Díky.
rony
Profil *
S metodou Get som zatiaľ skoro vobec nepracoval takže nevedel som presne ako funguje. Diky moc za pomoc rozbehal som to.
rony
Profil *
teraz ma napadlo že keď uživateľ zadá presnú adresu napr
xxx/spravy.php?akce=prijate&id_s=35 tak tu správu vymaže .. da sa to nejak ochraniť?
pcmanik
Profil
rony:
Over, ci je prijimatelom, resp odosielatelom spravy.
Tori
Profil
Buď v PHP (kontrolovat, jestli aktuálně přihlášený uživatel je adresátem/odesilatelem zprávy), nebo v databázi (smazat zprávu podle WHERE id_zpravy = [id z URL adresy] AND id_adresata = [id aktuálně přihlášeného uživatele]).
rony
Profil *
diky za napady :)
rony
Profil *
Nechcel som vytvarát nové tema, pretože toto je tomuto príbuzné.. takže problem:

po kliknuti a spravu od nejakého uživatela chcem aby sa mi načítala správa v tom istom okne. a vykreslil by sa mi formular na odpovedanie na spravu. po tom kliknuti by sa mi malo uložiť id spravy aby som ju vedel načítať a odoslat.. viete mi niekto helfnut trosku
rony
Profil *
prepáčte za spam ...

ked pouzijem toto:
echo '<td><a href="spravy.php?akcia='.ukaz_vsetky_moje_spravy.'&precitaj='.$precitaj.'">'.$spr."</td>";

na tejto stránke
spravy.php?akcia=ukaz_vsetky_moje_spravy
šlape to. ale akonáhle by som to chcel spravit na tejto stranke spravy.php?akcia=odpovedaj&precitaj=$precitaj
tak to nefunguje viete mi niekto vysvetlit kde robim chybu?
Tori
Profil
rony:
Je na stránce ...akcia=odpovedaj definovaná proměnná $precitaj? A to "ukaz_vsetky_moje_spravy" by mělo být taky uvnitř řetězce (pokud to náhodou opravdu není konstanta).
rony
Profil *
definovana je. ale "ukaz_vsetky_moje_spravy" je tam natvrdo dane.. pretože v spravy.php vo switchi vyberám akciu akú chcem.. doplnil som si tam case "ukaz_vsetky_moje_spravy" kde sa ma vykonať vlastne vykreslenie tej správy, teda to precitaj. takže neviem ako ďalej.. dufam ze som to opisal dobre pre pocopenie

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:

0