Vypsani dat z db podle vice parametru – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Vypsani dat z db podle vice parametru – PHP – Fórum – Programujte.comVypsani dat z db podle vice parametru – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
tribalcz0
Super člen
30. 8. 2013   #1
-
0
-

ahoj mam dotaz ohledne vypsani resp kontroli dat zadavanych do formulare pomoci vice parametru

zkratka uzivatel si uklada do db urcite veci ale chci umoznit duplcitu zaznamu to znamena ze ve srukture mam nejen nazev ale i majitele a pri kontrole bych chcel provadet kontrolu toho zda slozka existuje ale jen u daneho uzivatele tj zde je kod 

<?php
	zde jsou nejake ty hodnoty inputu z formu
	$majitel = $_SESSION['email']

	$sql1 = mysql_query ("SELECT * FROM tabulka WHERE owner= '$ownr' and nazev = '$name'");

	dále následuje podmínka kontrolující data z formu jako	zda uzivatell vubec neco napsal delka znaku req vyrz pro email a pod + kontrola existence zaznamu tj

	elseif (mysql_num_rows($sql1)) {
		$error = "Záznam již existuje";
	} else {
		a zde odesíláme data do databáze
	}
?>

je možné ze je tam nekde chyba ktera bije do oci ja ji bohuzel nevydil protoze podobny zpusob pouzivam pro login zde pouzivam navic i hodnotu verification ktera proveruje zda ma uzivatel aktivni ucet pro uplnost uuvedu ve zkratce i tento script 

na zacatku naberu hodnoty z formulare haslo zahashuju do sha1 aby se dalo porovnat z db
nasleduje nacteni db

$sql = mysql_query("SELECT * FROM uzivatele WHERE login = '$login' and password = '$sha1_pass' and activation = ");
$verification= mysql_num_rows($sql);
$row = mysql_fetch_array($sql);

nasleduje podminka 


if($verification== 1) {
    pokud vse projde tak je uzivatel prihlasen 
} else {
    pokud nastala nekde chyba bud v nicku heslu nebo v overeni tak otevre stranka wrong_login.php  s hlaskou o chybe ve formu a zaroven se do db ulozi informce o chybne prihlaseni 

opravdu nevim v cem je problem stejne jako u prihlaseni potrebuju overit vice udaju ale nefunguje to proste to proveri globalne to zda vubec nazev existuje skousel sem i toto 

$sql1 = mysql_query ("SELECT nazev FROM tabulka WHERE owner= '$owner");

coz pokud se nepletu by melo vybrat veskere nazvy podle majitele

Nahlásit jako SPAM
IP: 178.209.131.–
Reklama
Reklama
KIIV+42
God of flame
30. 8. 2013   #2
-
0
-

to je cely?:
"SELECT * FROM uzivatele WHERE login = '$login' and password = '$sha1_pass' and activation = "

Jinak nebylo by lepsi proste pres uzivatele a slozku hodit unikatni klic? Nebo tam mas reseny i vnoreny slozky?

Nahlásit jako SPAM
IP: 213.220.241.–
Program vždy dělá to co naprogramujete, ne to co chcete...
tribalcz0
Super člen
30. 8. 2013   #3
-
0
-

ne je tam toho vic slo mi o tu cast kde je to sami jako v tom co mi nefunguje to myslis jak jako ze by se ta slozka identifikovala jinym zpusobem ??ne vnoreny slozky zatim nemam a snad ani mit nebudu

Nahlásit jako SPAM
IP: 178.209.131.–
KIIV+42
God of flame
31. 8. 2013   #4
-
0
-

no myslim tim ze by sama databaze zajistila, ze jeden uzivatel nema vicekrat stejnou slozku...

pri insert into to umi vratit jestli se vlozilo nebo ne (hlavne to vraci id naposledy vlozeneho radku pokud to vlozilo)

Nahlásit jako SPAM
IP: 213.220.241.–
Program vždy dělá to co naprogramujete, ne to co chcete...
tribalcz0
Super člen
31. 8. 2013   #5
-
0
-

uf tak ted nevim co myslis da se rici ze se v php snazim stale zdokonalovat a co se tohodle tyce nevim co myslis mozna uz sem nekdy na to nekde narazil v drivejsich dobach kdyz sem se ucil o mysql apod ale ted opravdu nevim

Nahlásit jako SPAM
IP: 178.209.131.–
peter
~ Anonymní uživatel
2528 příspěvků
3. 9. 2013   #6
-
0
-

   

$sql1 = mysql_query ("SELECT * FROM tabulka WHERE owner= '$ownr' and nazev = '$name'");

Co je v promennych? Pravdepodobne je sql dotaz chybny. Idealne, kdyz si cely sql dotaz vypises do promenne a das jeho echo.

$dotaz = "SELECT * FROM tabulka WHERE owner= '$ownr' and nazev = '$name'";
echo $dotaz; // vysledek toho mne zajima
$sql1 = mysql_query ($dotaz) or die(mysql_error()); // pridani vypisu chyb pri selhani sql dotazu. V konecne verzi tam pak mysql_error nedavej, mohli by to pouzit hackeri

Pokud stejny sql dotaz funguje v phpmyadminu, tak bude fungovat i ve tvem programu.

Nahlásit jako SPAM
IP: 193.84.207.–
tribalcz
~ Anonymní uživatel
268 příspěvků
3. 9. 2013   #7
-
0
-

V promenych jsou data formulare osetrena escapovanim htmlspecial chars a trim puvodne sem do promene owner uklada data pomoci session ale to mi ukazovapo neexistujici radek v db ale jakmile sem uzivatele ulozil do promenne tak se to urovnalo teda podle toho jak na to koukas stalo to overuje globalne a ne podle uzivatelu takze podůe toho co si my napsal sem to mel dobre a chyba byla v promene owner takze staci z db vytahnout majitele a nazev pote to protahnou mysql_num_rows($sql1) a melo by to fachat normalne

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 37.188.239.–
peter
~ Anonymní uživatel
2528 příspěvků
3. 9. 2013   #8
-
0
-

Jj, proste je dobre si sql dotaz vypsat, kdyz nedela, co delat ma. Obvykle je problem v promennych s php, ze tam neni to, co tam melo byt.

Nahlásit jako SPAM
IP: 193.84.207.–
tribalcz0
Super člen
3. 9. 2013   #9
-
0
-

tak sem si to vypsal a bez ohledu na to zda se script provede korektne nebo ne my to vypise toto

O.KResource id #6
Warning: mysql_query() expects parameter 1 to be string, resource given in C:\xampp\htdocs\time\php\fcreat.php on line 33

pokud to chápu správně tak se očekává jakýsi parametr ale nemohu se za boha dopatrat jaky jedna-li se o jednolive zaznamy na radku tak databazi odesilam vse az na hodnotu edited a archiv prvni hodnota je jasna a druha obsahuje hodnotu 0/1 pokud nula zaznam neni archivovan a zobrazi se pokud jedna zaznam se nezobrazi resp hodnotu archiv ponechavam prazdnou aby se defaultne nastavovala na hodnotu 0

Nahlásit jako SPAM
IP: 178.209.131.–
KIIV+42
God of flame
3. 9. 2013   #10
-
0
-

tvrdi to, ze misto retezce se snazis strcit nejakej resource do mysql_query   mozna nejakej vysledek predchoziho nebo kdo vi co.. .bez presnyho kodu je to vesteni z kristalovy koule... (nebo precteni si chybove hlasky, chces li to pojmenovat lepe :D)

Nahlásit jako SPAM
IP: 213.220.241.–
Program vždy dělá to co naprogramujete, ne to co chcete...
peter
~ Anonymní uživatel
2528 příspěvků
4. 9. 2013   #11
-
0
-

'expects parameter 1 to be string, resource given'

Prvni parametr funkce ma byt string, dostal vsak resource. Resource se obvykle oznacuje vysledek funkce mysql_query. Viz kiiv, pravdepodobne tam mas neco takoveho
$sql = 'nejaky dotaz'; // $sql je string
$sql = mysql_query($sql); // $sql je resource
$sql = mysql_query($sql); // resource neni sql dotaz jako v prvnim pripade, vypise ten error
Takze bych doporucil si udelat poradek v promennych a pojmenovavat si je podle toho, co v nich je. Treba na php.net vysledek sql dotazu pojmenovavaji $result nebo $res a dotaz $query (ano, na php.net pouzivaji nekteri i $sql, nastesti jich neni mnoho).

http://cz1.php.net/manual/en/function.mysql-query.php

resource mysql_query ( string $query [, resource $link_identifier = NULL ] )

Nahlásit jako SPAM
IP: 193.84.207.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 41 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý