Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Zilele emailului

Best gaming laptop?

Humane (2024)

Recomandare casti 100-150 lei
 Schimbare bec far VW Touran 1T3

Plata impozit PF

Ce parere aveti de viteza/ modul ...

Love Lies Bleeding - 2024
 Cum sterg mails din Promotions

Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Donez medicamente renale ptr pisica
 Ce componenta e asta si ce ziceti...

Dupa 20 ani de facultate, am uita...

Mobile.de ofera imprumut de bani ...

problema test grila
 

afisare dupa cautare

- - - - -
  • Please log in to reply
21 replies to this topic

#1
GooDy

GooDy

    Junior Member

  • Grup: Members
  • Posts: 126
  • Înscris: 08.01.2007
vreau sa fac o mica pagina de cautare , sa dau dupa ce vreau sa caute ( dupa :  numele site-ului , dupa e-mail , dupa user sau dupa parola ) si inca o parte in care sa dau numele dupa care sa caute .

I-am dat la aceste 2 campuri variabilele : $a si $b .

aici este codul :
<?php
 
require_once('config.php');


if(isset($_POST['submit']))
{
	$a=$_POST['categorie'];

	$b=$_POST['link'];

	 
$cereresql='SELECT * FROM adrese WHERE".$a."=".$b." ';
$rezultat = mysql_query($cereresql);

	 
while ($rand = mysql_fetch_array($rezultat))

 {
echo $rand['site'] , ''.$rand['mail'].''.$rand['parola'].'<br>';
}
 
} else {
?>
<form action="cauta.php" method="post" meta http-equiv=Refresh content=1;url=cauta.php>
<table>
	
	<tr>
		<td>
			

Cautare dupa: <input type="text" name="categorie" />



		</td>	
	</tr>
	<tr>
		<td>
			Incepe cu: <input type="text" name="link" /><br /> </td></tr>
  <tr><td>
			
 <br />
			<input type="submit" name="submit" value="Trimite" />
		</td>
	</tr>		
</table>
</form>	
 
<?php
}
 
mysql_close();
 
?>

unde am gresit ? ... nu imi da nici o eroare , dar nici nu imi afiseaza  vre-un rezultat....pagina ramane goala  :confuzzled: :deadtongue:

#2
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Ai o eroare in cererea MySQL. Foloseste tehnicile de debugging descrise in "sfaturi de programare in php" ca sa afli care.

De ce nu iti spun eu direct, mura-n gura, ce gresesti? Simplu, pentru ca-ti vreau binele :P

Daca inveti acele tehnici, in viitor nu va mai trebui sa apelezi la mila pe forumuri, ci vei sti sa-ti rezolvi singur problemele marunte, sau cel putin vei sti sa le rezolvi pe jumatate.

#3
GooDy

GooDy

    Junior Member

  • Grup: Members
  • Posts: 126
  • Înscris: 08.01.2007
ori sunt  :death:  ori nu inteleg....am citit ce ai spus tu ...si ma incadrez la punctul  3 dar nu am gasit deloc rezolvarea  :helpsmilie:

#4
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Sfatul IV. 2. ti se adreseaza in special. Care 3?

PS: Sau nici nu ai gasit "sfaturi de programare in PHP"? E topic sticky pe aria incepatori, e mentionat peste tot pe arie, si e si la mine in semnatura.

Edited by OriginalCopy, 05 November 2008 - 18:38.


#5
GooDy

GooDy

    Junior Member

  • Grup: Members
  • Posts: 126
  • Înscris: 08.01.2007
macar atata lucru sa stiu si eu sa gasesc ceea ce mi-ai zis....din pacate eu ma refeream la pct 3 , nu pct 2 ... dar in fine pentru mine tot rezultatu ala a fost  :eek: :bigeyed:  

noul cod  , acelasi rezultat :

<?php
 
require_once('config.php');


if(isset($_post['submit']))
{
	$a=$_post['categorie'];

	$b=$_post['partial'];

$sql='SELECT * FROM adrese WHERE "'.$_post['categorie'].'"  =  "'.$_post['partial'].'"  ';
$res=mysql_query($sql);
$r=mysql_fetch_array($res);
 
echo mysql_error();
	
	 {
echo $r['site'] , ''.$r['mail'].''.$r['parola'].'<br>';
}
 
} else {
?>
<form action="cauta.php" method="post" meta http-equiv=Refresh content=1;url=cauta.php>
<table>
	
	<tr>
		<td>
			Cautare dupa: <input type="text" name="categorie" />
</td>	
	</tr>
	<tr>
		<td>
			Incepe cu: <input type="text" name="partial" /><br /> </td></tr>
  <tr><td>
			<br />
			<input type="submit" name="submit" value="Trimite" />
		</td>
	</tr>		
</table>
</form>	
 
<?php
}
   mysql_close();
?>

am incercat si cu GET in loc de POST dar rezultatul fiind si mai prost....adica dupa ce dadeam trimitere ma reintorceam instantaneu la inceput . :sadwalk: :frust:

#6
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Deci nu te inteleg, cum poti sa citesti asta:

----
O altă metodă de a detecta greșeli în cereri SQL este să nu folosești clientul mysql.exe, ci PHP ca client mysql.
Scenariu: $res = mysql_query($sql);
În acest caz cererea salvată în variabila $sql poate conține erori, dar PHP nu le afișează pentru că ... nu i-ai spus să o facă! (e un principiu de bază în programare: mașina - adică calculatorul - face exact ceea ce-i spui tu să facă, nimic mai mult, nimic mai puțin. Dacă ceva "nu funcționează", atunci e vina omului, nu a mașinii).
Pentru a afișa eroarea, poți face cererea astfel:
$res = mysql_query($sql) or die('Cererea SQL:<pre>"'.htmlspecialchars($sql).'"</pre> a returnat eroarea:<pre>'.mysql_error().'</pre>');

Notă: eroarea ar fi avut același format dacă ai fi folosit clientul mysql nu PHP pentru a te conecta la serverul mysql, însă în scenariul de față poți folosi variabile din runtime-ul PHP, ceea ce nu ai putea face în mysql "pur".
-----

... și tot să nu aplici ce înveți din acest sfat în codul tău?

#7
GooDy

GooDy

    Junior Member

  • Grup: Members
  • Posts: 126
  • Înscris: 08.01.2007
stiu ca in fata ta par un fraier dar ...

$sql='SELECT * FROM adrese WHERE "'.$_post['categorie'].'"  =  "'.$_post['partial'].'"  ';
$res=mysql_query($sql);
$r=mysql_fetch_array($res) ;



e pus respectivul cod in scriptu meu

#8
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Nu pari ca un fraier, dar incearca in primul rand sa intelegi ce faci, total independent de problema ta actuala, acumuleaza niste cunostinte, apoi le aplici in codul tau.

De exemplu, ce nu intelegi din acel sfat? Te concentrezi prea mult pe "rezolvarea problemei" si prea putin pe intelegere. Spune-mi concret, ca sa-ti explic.

Tu trimiti cererea asa:
$res=mysql_query($sql);

Ceea ce e in principiu corect, INSA:

---- QUOTE:
O altă metodă de a detecta greșeli în cereri SQL este să nu folosești clientul mysql.exe, ci PHP ca client mysql.
Scenariu: $res = mysql_query($sql);
În acest caz cererea salvată în variabila $sql poate conține erori, dar PHP nu le afișează pentru că ... nu i-ai spus să o facă!
...
Pentru a afișa eroarea, poți face cererea astfel:
$res = mysql_query($sql) or die('Cererea SQL:<pre>"'.htmlspecialchars($sql).'"</pre> a returnat eroarea:<pre>'.mysql_error().'</pre>');

#9
Saurian

Saurian

    Active Member

  • Grup: Banned
  • Posts: 1,280
  • Înscris: 02.09.2008

View PostGooDy, on Nov 5 2008, 19:45, said:

stiu ca in fata ta par un fraier dar ...

$sql='SELECT * FROM adrese WHERE "'.$_post['categorie'].'"  =  "'.$_post['partial'].'"  ';
$res=mysql_query($sql);
$r=mysql_fetch_array($res) ;



e pus respectivul cod in scriptu meu

nu pricep de ce nu pui codul lui Original Copy pentru a vedea eroarea. cum crezi că vei putea găsi greșelile dacă nu faci nici un debug? e chiar așa de mult un mysql_error? așa poți vedea mult mai clar ce nu a mers

#10
GooDy

GooDy

    Junior Member

  • Grup: Members
  • Posts: 126
  • Înscris: 08.01.2007
prima oara intelesesem sa pun doar  :

$res=mysql_query($sql);

acum am pus asa cum ati spus :

......
$sql='SELECT * FROM adrese WHERE "'.$_POST['categorie'].'"  =  "'.$_POST['partial'].'"  ';
$res = mysql_query($sql) or die('Cererea SQL:<pre>"'.htmlspecialchars($sql).'"</pre> a returnat eroarea:<pre>'.mysql_error().'</pre>');
$r=mysql_fetch_array($res);
.......

rezultatul acelasi ,

#11
Saurian

Saurian

    Active Member

  • Grup: Banned
  • Posts: 1,280
  • Înscris: 02.09.2008

View PostOriginalCopy, on Nov 5 2008, 19:50, said:

Nu pari ca un fraier, dar incearca in primul rand sa intelegi ce faci, total independent de problema ta actuala, acumuleaza niste cunostinte, apoi le aplici in codul tau.

De exemplu, ce nu intelegi din acel sfat? Te concentrezi prea mult pe "rezolvarea problemei" si prea putin pe intelegere. Spune-mi concret, ca sa-ti explic.

Tu trimiti cererea asa:
$res=mysql_query($sql);

Ceea ce e in principiu corect, INSA:

---- QUOTE:
O altă metodă de a detecta greșeli în cereri SQL este să nu folosești clientul mysql.exe, ci PHP ca client mysql.
Scenariu: $res = mysql_query($sql);
În acest caz cererea salvată în variabila $sql poate conține erori, dar PHP nu le afișează pentru că ... nu i-ai spus să o facă!
...
Pentru a afișa eroarea, poți face cererea astfel:
$res = mysql_query($sql) or die('Cererea SQL:<pre>"'.htmlspecialchars($sql).'"</pre> a returnat eroarea:<pre>'.mysql_error().'</pre>');

acum m-am prins cu mysql_error ce nu i-a mers. din cauză că ca afișat funcția după ce a făcut funcția cu fetch_array, așa-i? poate să îți scape asta și din neatenție... mi-a luat ceva timp până mi-am dat seama.

#12
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostGooDy, on Nov 5 2008, 20:01, said:

prima oara intelesesem sa pun doar  :

$res=mysql_query($sql);
pai daca nu citesti cu atentie ce ti se zice...

View PostGooDy, on Nov 5 2008, 20:01, said:

acum am pus asa cum ati spus :

......
$sql='SELECT * FROM adrese WHERE "'.$_POST['categorie'].'"  =  "'.$_POST['partial'].'"  ';
$res = mysql_query($sql) or die('Cererea SQL:<pre>"'.htmlspecialchars($sql).'"</pre> a returnat eroarea:<pre>'.mysql_error().'</pre>');
$r=mysql_fetch_array($res);
.......

rezultatul acelasi ,

Nu afiseaza ce eroare are?

Daca nu: Ai output buffering on in php.ini? Seteaza php pentru programare (asa cum e descris in aceleasi renumite si sfinte "sfaturi de programare in php"), restart apache, apoi incearca iar.
Daca da: vino cu ce-ti afiseaza apelul la die() (copy/paste).

View PostSaurian, on Nov 5 2008, 21:01, said:

acum m-am prins cu mysql_error ce nu i-a mers. din cauză că ca afișat funcția după ce a făcut funcția cu fetch_array, așa-i? poate să îți scape asta și din neatenție... mi-a luat ceva timp până mi-am dat seama.
Nu am inteles exact ce vrei sa spui, dar sigur nu-i asa :)

#13
GooDy

GooDy

    Junior Member

  • Grup: Members
  • Posts: 126
  • Înscris: 08.01.2007
pffuai de capu meu ...imi atarn firu de la mouse de gat ....


am configura exact exact cum era scris in cele sfinte ...

si rezultatul este acelasi .

la output buffering era un nr : 4096 ... am pus cum era scris in sfaturi ( Off )

#14
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Imposibil sa nu iti afiseze eroarea. Esti sigur ca acel cod este tot ce ai?

Ataseaza: php.ini, index.php (codul tau de mai sus, asa cum e el acum,fara modificari) si config.php (cu parola goala), sa testez.

LE: si un dump in format SQL la tabelul respectiv (cu phpmyadmin)

#15
GooDy

GooDy

    Junior Member

  • Grup: Members
  • Posts: 126
  • Înscris: 08.01.2007
done !

Attached Files



#16
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Edit

Tu selectai toate randurile din tabel acolo unde $_POST['categorie'] este egal cu $_POST['partial'], fara a face o referire la vreo coloana din tabel.

Coloanele dintr-un tabel si numele tabelelor se pun intre caracterele backtick (`), nu intre ghilimele.

Ex: SELECT * from `adrese`;

Conditia "id" = "13" este falsa mereu. Intelegi?

O sa mai adaug un sfat pentru asta. Multumim :cheers:

Edited by OriginalCopy, 05 November 2008 - 21:55.


#17
GooDy

GooDy

    Junior Member

  • Grup: Members
  • Posts: 126
  • Înscris: 08.01.2007
aha...deci se pare ca de la niste ghilimele buclucase am dat de furca la lume ... neatentia .

acum in sfarsit imi da o eroare  :coolspeak:  ( am inceput sa ma bucur ca imi da erori ...e grav ) ..

Cererea SQL:

"SELECT * FROM "adrese" WHERE "site"  =  "cd"  "

a returnat eroarea:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"adrese" WHERE "site"  =  "cd"' at line 1

ceea ce ai vrut u sa zici cu id = 13 este falsa....asta inseamna ca si site = cd este fals .... pey in tutorialu ala de php ( firar mama lui ) asa scria...ca sa preiei dintr-o baza de date  poti folosi site = cd si ar trebui sa imi afiseze toate site-urile care incep cu cd

#18
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
site = "cd" este corect
"site" = "cd" nu este corect (ceea ce faceai tu)
cel mai corect este totusi `site` = "cd"

Edited by OriginalCopy, 05 November 2008 - 22:10.


Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate