PHP - MySQL lekérdezés, szintaktikai hiba
Sziasztok!
Nemrég kezdtem el foglalkozni a MySQL adatbázisokkal. Jelenleg ott tartok, hogy PHP-val feltöltöttem az adatbázist egy txt fájlból, de keresni már nem tudok benne.
Csináltam egy oldalt, ezen keresztül folyna a keresés (http://fledgling.hostoi.com/iskola/kereses.php). Maga a lekérdezés így néz ki:
És ezt a hibát dobja ki: Error: 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 'Resource id #6' at line 1
Minden segítséget nagyra értékelnék!
■ Nemrég kezdtem el foglalkozni a MySQL adatbázisokkal. Jelenleg ott tartok, hogy PHP-val feltöltöttem az adatbázist egy txt fájlból, de keresni már nem tudok benne.
Csináltam egy oldalt, ezen keresztül folyna a keresés (http://fledgling.hostoi.com/iskola/kereses.php). Maga a lekérdezés így néz ki:
$result = mysql_query(
"
SELECT * FROM adatok
WHERE bibl LIKE '%$_GET[bibl]%'
AND megjelenes LIKE '%$_GET[megjelenes]%'
AND ann LIKE '%$_GET[ann]%'
AND szleng LIKE '%$_GET[szleng]%'
AND kozl LIKE '%$_GET[kozl]%'
");
if (! mysql_query($result,$con))
{
die('Error: ' . mysql_error());
}
// itt van a hiba, itt áll meg szerintem
echo "<table border='1'>
<tr>
<th>Megjelenés éve</th>
<th>Biblográfiai leírás</th>
<th>Annotáció</th>
<th>Szleng típusa</th>
<th>Közlemény típusa</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['bibl'] . "</td>";
echo "<td>" . $row['megjelenes'] . "</td>";
echo "<td>" . $row['ann'] . "</td>";
echo "<td>" . $row['szleng'] . "</td>";
echo "<td>" . $row['kozl'] . "</td>";
echo "</tr>";
}
echo "</table>";
"
SELECT * FROM adatok
WHERE bibl LIKE '%$_GET[bibl]%'
AND megjelenes LIKE '%$_GET[megjelenes]%'
AND ann LIKE '%$_GET[ann]%'
AND szleng LIKE '%$_GET[szleng]%'
AND kozl LIKE '%$_GET[kozl]%'
");
if (! mysql_query($result,$con))
{
die('Error: ' . mysql_error());
}
// itt van a hiba, itt áll meg szerintem
echo "<table border='1'>
<tr>
<th>Megjelenés éve</th>
<th>Biblográfiai leírás</th>
<th>Annotáció</th>
<th>Szleng típusa</th>
<th>Közlemény típusa</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['bibl'] . "</td>";
echo "<td>" . $row['megjelenes'] . "</td>";
echo "<td>" . $row['ann'] . "</td>";
echo "<td>" . $row['szleng'] . "</td>";
echo "<td>" . $row['kozl'] . "</td>";
echo "</tr>";
}
echo "</table>";
És ezt a hibát dobja ki: Error: 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 'Resource id #6' at line 1
Minden segítséget nagyra értékelnék!
Több sebből vérzik
$_GET[valami] helyett $_GET['valami']
kód
."bibl LIKE '%".mysql_real_escape_string($_GET['bibl'])."%' AND "
."megjelenes LIKE '%".mysql_real_escape_string($_GET['megjelenes'])."%' AND "
."ann LIKE '%".mysql_real_escape_string($_GET['ann'])."%'" AND "
."szleng LIKE '%".mysql_real_escape_string($_GET['szleng']."%' AND "
."kozl LIKE '%".mysql_real_escape_string($_GET['kozl'])."%'";
$result = mysql_query($query);
amelyik része ködös annak érdeklődj utána(közhely: góglban).
Köszönöm
köszönöm a gyors válaszokat. Akkor viszont, ha jól értelmezem, ha számot akarok átadni akkor marad a $_GET[szam]?
Illetve, ebben a ($_GET['bibl']) stringben mit kell levédeni? Nincs benne perjel vagy ilyesmi, sima hozzáfűzéssel nem működne? Vagy a ' karakter miatt kell?
Aztán kipróbáltam Lohan változatát, de sztem két szintaktikai is van benne: a 4. sorban van egy plusz " (hibát is dob a fordító), de ha ezt kitörlöm, akkor is ezt írja ki:
Parse error: syntax error, unexpected ';' in /home/a2116591/public_html/iskola/keres.php on line 22
Erre a kódra:
."bibl LIKE '%".mysql_real_escape_string($_GET['bibl'])."%' AND "
."megjelenes LIKE '%".mysql_real_escape_string($_GET['megjelenes'])."%' AND "
."ann LIKE '%".mysql_real_escape_string($_GET['ann'])."%' AND "
."szleng LIKE '%".mysql_real_escape_string($_GET['szleng']."%' AND "
."kozl LIKE '%".mysql_real_escape_string($_GET['kozl'])."%'";
$result = mysql_query($query,$con);
Zárójel
Talán így jobban áttekinthető:
Puff