ugrás a tartalomhoz

No database selected és más hibák PHP MySQL lekérdezésnél

chipi · 2006. Okt. 29. (V), 23.42
Sziasztok!
Lenne egy olyan picike kis gondom, hogy szeretnék keresni az adatbázisomban, de több feltételnek kell megfelelnie, de ez akkor is keressen amikor a feltétel értéke 0.
Írtam egy progit, de valamiért nem akar keresni.

<?php
//adatbázis megnyitása
include("kapcsolat.php");
////////////////////////////
$kereses=$_POST["keres"];
$kateg=$_POST["kat"];
$color=$_POST["szin"];
$szerz=$_POST["szerzok"];
$tipus=$_POST["helyzet"];
$ell=$_POST["ell"];
////////
$result=mysql_query("SELECT * FROM kepek WHERE (kepnev LIKE ('%$kereses%')) && (kategoria='$kateg')&& (szin='$color') && (szerzo='$szerz') && (helyzet='$tipus') ");
 $teljes = mysql_num_rows($result);
   for ($i=1; $i < ($teljes+1); $i=$i+1) {
 	     $termek_tomb[$i]=mysql_fetch_assoc($result);
		}
		if(isset($ell)){
	if( $teljes==0){
		print("Nincs találat!");
		}}
?>
A végét nem rakom be mert ott úgy is csak kiíratom.
Hol hibázhattam el szerintetek?
 
1

kapcsolat

kerzo · 2006. Okt. 29. (V), 23.56
Pl. nem árt összeköttetést létesíteni az adatbázissal

<?php
$ossz = mysql_connect($hostname, $username, $password) or die(mysql_error());
$sql = "SELECT * FROM kepek WHERE (kepnev LIKE ('%$kereses%')) && (kategoria='$kateg')&& (szin='$color') && (szerzo='$szerz') && (helyzet='$tipus') ";

$result = mysql_query($sql, $ossz) or die(mysql_error());
2

kapcsolat

chipi · 2006. Okt. 30. (H), 00.04
"No Database Selected"

Ez azt jelenki akkor, hogy nem jól kapcsolódok az adatbázishoz?

Hozzátattem a kapcsolatot is, és most jó, de nem keres, egyáltalán jól írtam meg a feltételeket?
3

hoppá

kerzo · 2006. Okt. 30. (H), 00.08
ezt kifelejtettem:
mysql_select_db($database, $ossz);

Tehát akkor valahogy így:

<?php
$ossz = mysql_connect($hostname, $username, $password) or die(mysql_error());

mysql_select_db($database, $ossz);

$sql = "SELECT * FROM kepek WHERE (kepnev LIKE ('%$kereses%')) && (kategoria='$kateg')&& (szin='$color') && (szerzo='$szerz') && (helyzet='$tipus') ";

$result = mysql_query($sql, $ossz) or die(mysql_error());
4

kész

chipi · 2006. Okt. 30. (H), 00.12
Eddig a pontig én is eljutottam, és kapcsolódok most hiba nélkül az adatbázihoz, de azt nem értem, hogy miért nem tudok a feltételeknek eleget tenni?
5

rows -> assoc

kerzo · 2006. Okt. 30. (H), 00.38
A lekérdezésnél még mysql_num_rows($result) van (ami egyébként mysql_num_row($result)), a for ciklusban pedig már mysql_fetch_assoc($result). El kellene dönteni, hogy melyiket használod. És szerintem egyszerűbb lenne egy do-while ciklus.

<?php
do {

//it történik a tömb sorainak feldolgozása

} while ($teljes = mysql_fetch_assoc($result));
6

kiíratás

chipi · 2006. Okt. 30. (H), 00.59
Ezeket a sorokat én nem tettem bele, mert fölösleges. Forral íratom ki. No, de a gond az ott kezdődik, hogy ha kiszedem a where után azt a sok táblanevet és csak eggyet hagyok bent akkor azonnal lekéri nekem azt az adatot, de ha már is többet rakok bele akkor már nem ír ki semmit, azaz valamit szerinem nem jól írtam a where után.
7

mysql_error()

TeeCee · 2006. Okt. 30. (H), 10.01
Javaslom a mysql_error() függvény használatát...
Ha megvan a hiba szövege, akkor rá tudsz keresni a neten, ha nem egyértelmű...
8

mysql_error() van

chipi · 2006. Okt. 30. (H), 13.18
Van benne mysql_error() és nem ír ki hibát, hiba nélkül lefutt, de nem hoz le semmit nekem.
9

Kiiratás

Anonymous · 2006. Okt. 30. (H), 14.37
És ki is iratod a mysql_error() függvény "visszatérési-értékét" vagy csak simán beírtad, hogy
mysql_error();
?
10

helyes osszefuzes

lovrob · 2006. Dec. 9. (Szo), 12.00
Tudom, hogy regi a topic, de hatha mas is okul belole...

Nezzuk azt a SELECT-et...

Nyilvan nem a $kereses-t, a $color-t stb. akarod keresni az mezokben, hanem ezen valtozok ertekeit. Igy azt be kell helyettesiteni a mysql_query-nek atadott sztringbe...
Tehat helyesen :

<?php

$sql = "SELECT * FROM kepek WHERE (kepnev LIKE '%".$kereses."%') && (kategoria='".$kateg."') && (szin='".$color."') && (szerzo='".$szerz."')";

?>
Udv.