Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

extragere id dintr-un url
Vezi mesajul original
Du-te la pagina 1, 2  Următoare
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Subiectul anterior :: Subiectul următor  
Autor Mesaj
smileybos



Data înscrierii: 25/Aug/2004
Mesaje: 82

Trimis: Sâm Aug 30, 2008 11:28 am    Titlul subiectului: extragere id dintr-un url  

am un url din care vreau sa extrag idul: ..../index.php?_a=viewProd&productId=440

am incercat asa:
Cod: $cerereSQL = 'SELECT * FROM `produse` WHERE  `productId`="'.$_GET['productId'].'"';
   $rezultat = mysql_query($cerereSQL);
   while($rand = mysql_fetch_array($rezultat))
   {
echo '$rand['campuldecareamnevoie']';
}
daca in loc de `productId`="'.$_GET['productId'].'"' pun `productId`= 36', merge :|...
ce gresesc si cum il pot face sa mearga? e foarte urgent.
Sus  
vectorialpx



Data înscrierii: 01/Mar/2005
Mesaje: 3014
Locație: țopăi pe tasta DELETE

Trimis: Sâm Aug 30, 2008 11:46 am    Titlul subiectului:  

'_a' nu e un nume de variabila valid ;)
Sus  
smileybos



Data înscrierii: 25/Aug/2004
Mesaje: 82

Trimis: Sâm Aug 30, 2008 11:57 am    Titlul subiectului:  

n-am mai intalnit asa ceva.. ce ar trebui sa fac in cazul asta? :roll:
Sus  
Amenthes



Data înscrierii: 12/Dec/2005
Mesaje: 620

Trimis: Sâm Aug 30, 2008 2:08 pm    Titlul subiectului:  

vectorialpx a scris: '_a' nu e un nume de variabila valid

In PHP? Sigur nu. Si apoi "_a" e doar cheia unui array, ar putea sa contina si caractere nepermise in variabilele PHP.

@smileybos

$rezultat = mysql_query($cerereSQL) or die(mysql_error());

Iti moare cu eroare?
Sus  
vectorialpx



Data înscrierii: 01/Mar/2005
Mesaje: 3014
Locație: țopăi pe tasta DELETE

Trimis: Sâm Aug 30, 2008 2:33 pm    Titlul subiectului:  

Citat: In PHP? Sigur nu. Si apoi "_a" e doar cheia unui array, ar putea sa contina si caractere nepermise in variabilele PHP
da... my bad... ma gandeam la -

PS: se pare ca am o zi cam proasta azi... :?
PPS: nici nume de variabile care incep cu _ nu pun [probabil ca sunt mai clasic]
Sus  
smileybos



Data înscrierii: 25/Aug/2004
Mesaje: 82

Trimis: Sâm Aug 30, 2008 4:22 pm    Titlul subiectului:  

Amenthes a scris: vectorialpx a scris: '_a' nu e un nume de variabila valid

In PHP? Sigur nu. Si apoi "_a" e doar cheia unui array, ar putea sa contina si caractere nepermise in variabilele PHP.

@smileybos

$rezultat = mysql_query($cerereSQL) or die(mysql_error());

Iti moare cu eroare?

Am pus si nu moare...
Sus  
Kine



Data înscrierii: 09/Aug/2008
Mesaje: 11

Trimis: Sâm Aug 30, 2008 5:42 pm    Titlul subiectului:  

vectorialpx a scris: Citat: In PHP? Sigur nu. Si apoi "_a" e doar cheia unui array, ar putea sa contina si caractere nepermise in variabilele PHP
da... my bad... ma gandeam la -

PS: se pare ca am o zi cam proasta azi... :?
PPS: nici nume de variabile care incep cu _ nu pun [probabil ca sunt mai clasic]

In programarea clasica in PHP se folosea acel _ pentru a delimita membrii private / protected ai unei clase de membrii publici (care nu aveau _ ).

Acum, de cand cu php5, probabil a ramas in reflexul multora sa puna _ in fata variabilelor, desi avem restrictiile de acces care functioneaza foarte bine. Eu unul nu am renuntat la aceasta tehnica.

Numele de variabila pot incepe doar cu _ sau cu litera, insa pot contine si cifre. Pe de alta parte, exista si tehnici cu ajutorul carora poti declara variabile in orice format, chiar incepand cu cifre :)
Sus  
Kine



Data înscrierii: 09/Aug/2008
Mesaje: 11

Trimis: Sâm Aug 30, 2008 5:46 pm    Titlul subiectului: Re: extragere id dintr-un url  

smileybos a scris: am un url din care vreau sa extrag idul: ..../index.php?_a=viewProd&productId=440

am incercat asa:
Cod: $cerereSQL = 'SELECT * FROM `produse` WHERE  `productId`="'.$_GET['productId'].'"';
   $rezultat = mysql_query($cerereSQL);
   while($rand = mysql_fetch_array($rezultat))
   {
echo '$rand['campuldecareamnevoie']';
}
daca in loc de `productId`="'.$_GET['productId'].'"' pun `productId`= 36', merge :|...
ce gresesc si cum il pot face sa mearga? e foarte urgent.

De ce nu "... WHERE productId = ' {$_GET['productId'] }' ";

Iti recomand sa inchizi orice query SQL in ghilimele ( " ) si nu in apostrof (') . AStfel poti interpola variabile fara a-ti face astfel de griji.

Daca totusi ai probleme cu query-ul, fa-i un echo si baga intr-o consola de MySQL sau in phpMyAdmin ce rezulta.

--edit: Inchiderea string-urilor cu ghilimele este recomandata aproape exclusiv pentru query-uri. Pentru string-uri care nu sunt menite sa includa si variabile, este recomandata folosirea apostroafelor din motive de rapiditate a interpretarii script-ului.
Sus  
smileybos



Data înscrierii: 25/Aug/2004
Mesaje: 82

Trimis: Sâm Aug 30, 2008 6:11 pm    Titlul subiectului:  

nici cu ' {$_GET['productId'] }' nu functioneaza.. nu cred ca e problema de cum inchid ghilimelele.. eu zic ca e problema cu $_GET['productId'] care cred ca ar trebui sa fie ceva mai complex (avand in vedere ca mai este index.php?_a=viewProd&productId=441 inainte de productId) si .. nu am nicio idee de ce nu vrea sa mearga..
culmea ca daca ii dau o valoare lu where `productId` = 30, imi afiseaza ce vreau eu (specificatiile produsului).. undeva e o greseala cu $_GET['productId'] dar nu-mi dau seama unde si de ce nu merge :(.. problema ar fi ca e ceva foarte urgent si nu gasesc rezolvare :(
Sus  
Kine



Data înscrierii: 09/Aug/2008
Mesaje: 11

Trimis: Sâm Aug 30, 2008 6:54 pm    Titlul subiectului:  

var_dump($_GET);

scrie asta undeva deasupra query-ului ca sa vezi ce se transmite.
Sus  
smileybos



Data înscrierii: 25/Aug/2004
Mesaje: 82

Trimis: Sâm Aug 30, 2008 7:50 pm    Titlul subiectului:  

mi se afiseaza chestia asta inainte de continutul paginii:
Cod: array(2) { ["_a"]=> string(8) "viewProd" ["productId"]=> string(3) "441" }
Sus  
Kine



Data înscrierii: 09/Aug/2008
Mesaje: 11

Trimis: Sâm Aug 30, 2008 10:24 pm    Titlul subiectului:  

Atunci query-ul nu are de ce sa nu mearga. Vezi daca exista id-ul respectiv in baza de date, poate si asta e o problema.

In caz ca exista, incearca sa pui undeva Cod: echo $_GET['productId']
Dupa ce te asiguri ca iti afiseaza fix id-ul de care ai tu nevoie, incearca sa pui acea parte cui '{$_GET['productId']}' pe care am pus-o si eu mai sus si sa inchizi totul cu duble ghilimele.

Ca sa te asiguri ca totul e in regula, fa si un echo query-ului inainte de a-l executa si pune-l in phpMyAdmin, apoi vezi rezultatul de acolo. Daca iti intoarce ceea ce doresti, atunci ai o problema cu conexiunea. Daca nu iti intoarce, atunci ai o problema cu query-ul.
Sus  
bash



Data înscrierii: 21/Aug/2008
Mesaje: 51

Trimis: Sâm Aug 30, 2008 10:45 pm    Titlul subiectului:  

man trateza-l ca pe un string tot url ala ,faci explode dupa =,il importi intr-o baza de date si faci select.
Sus  
dechim



Data înscrierii: 10/Mai/2005
Mesaje: 656
Locație: Drobeta Turnu Severin

Trimis: Sâm Aug 30, 2008 11:00 pm    Titlul subiectului:  

Ai zis ca daca pui `productId`= 36 merge, deci campul productId din tabela este numeric si select-ul trebuie sa fie:
Cod:
 $cerereSQL = 'SELECT * FROM `produse` WHERE  `productId` ='. $_GET['productId'];
Sus  
smileybos



Data înscrierii: 25/Aug/2004
Mesaje: 82

Trimis: Sâm Aug 30, 2008 11:37 pm    Titlul subiectului:  

dechim a scris: Ai zis ca daca pui `productId`= 36 merge, deci campul productId din tabela este numeric si select-ul trebuie sa fie:
[code]
$cerereSQL = 'SELECT * FROM `produse` WHERE `productId` ='. $_GET['productId'];


exact cum zici tu am facut:
[code] $cerereSQL = "SELECT * FROM `produse` WHERE `productId`=".$_GET['productId']."";
$rezultat = mysql_query($cerereSQL) or die(mysql_error());
while($rand = mysql_fetch_array($rezultat))
{
$view_prod->assign("TXT_SPECIFICATION",$rand['specification']);
} [/code]
daca pun in loc de $rand['specification'], $_GET['productId'], culmea, imi afiseaza idul! :|
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat Du-te la pagina 1, 2  Următoare
Pagina 1 din 2


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community