[ starter1 @ 19.04.2006. 10:59 ] @
Pocetnik sam s php-om pa bih vas zamolio za pomoc.
Imam bazu imenik i u njoj tablicu imenik s tri polja(ime,prezime i broj)
Kada postavim SQL upit
SELECT * FROM `imenik` WHERE ime='Pero'
dobivam rezultat. Sada bi to htio dobiti s php-om
Napravim file procitaj.php

<?php
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("Imenik");
$sql = mysql_query("SELECT * FROM 'imenik' WHERE ime='Pero'");
?>

Kada u brovser upisem
http://localhost/proba/procitaj.php
Dobivam potpuno praznu stranicu!!
A zelja mi je dobiti red s podacima koje sam dobio s SQL upitom.
[ Jbyn4e @ 19.04.2006. 11:25 ] @
Imas primer na
http://yu.php.net/mysql_query
isto pogledaj i sve funkcije u delu:
http://yu.php.net/manual/en/ref.mysql.php
[ starter1 @ 19.04.2006. 12:21 ] @
Hvala.Sada sam ispravio i ovako napisao:

<?php
// Connecting, selecting database
$link = mysql_connect('localhost', 'root', '')
or die('Could not connect: ' . mysql_error());
echo 'Connected successfully';
mysql_select_db('Imenik') or die('Could not select database');

// Performing SQL query
$query = 'SELECT * FROM imenik';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
// Printing results in HTML
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";

// Free resultset
mysql_free_result($result);

// Closing connection
mysql_close($link);
?>

Sada radi:Dobije u browseru
Connected successfully
Darko Darkic 223344
Pero Peric 112233
Proba Probic 123456
Test Ivic 123456

Sada bi zelio dobiti samo jednog na popisu. I ispravim red:
$query = 'SELECT * FROM imenik WHERE ime='Darko'';

ali mi javlja gresku
Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\proba\pro.php on line 9
Dakle u tom redu.Probao sam i sa jednom po jednom od slijedecih varijanti
$query = 'SELECT * FROM 'imenik' WHERE ime='Darko'';
$query = "SELECT * FROM 'imenik' WHERE ime='Darko'";
$query = 'SELECT * FROM 'imenik' WHERE ime='Darko'';
i opet isto...



[ Jbyn4e @ 19.04.2006. 12:36 ] @
Citat:

$query = 'SELECT * FROM 'imenik' WHERE ime='Darko'';

Ne mzoes tako da radis. Ti sad ovde otvaras string sa ', i zatvaras ga kod imenik i onda on ocekuje ; kao kraj reda, a ti mu pises nesto drugo.
Dakle, moglo bi:
1) $query = 'SELECT * FROM imenik WHERE ime=Darko';
2) $query = 'SELECT * FROM imenik WHERE ime="Darko"';
3) $query = "SELECT * FROM 'imenik' WHERE ime='Darko'";

ili nesto slicno. Moraces i da pogledas kako je potrebno da radis sa mysql-om - dakle, da li moze where ime="Darko" ili where ime = Darko. Konsultuj svoj mysql manual oko sintakse select ... where.
[ starter1 @ 19.04.2006. 12:42 ] @
@ Jbyn4e
Hvala
Ovako radi
$query = 'SELECT * FROM imenik WHERE ime="Darko"';

E sada jos jedno pitanje.Imam
<html>
<body><form action="procitaj.php" method="POST">
Upisite ime: <input type="text" />
<input type="submit" value="Trazi" name="submit"><br />
</form></body>
</html>

To mi je index.html file s formom.
Sada bih zelio da kada tu upisem ime i kliknem trazi da mi on to upisano ime uzme kao varijablu umjesto Darko....
[ Jbyn4e @ 19.04.2006. 13:06 ] @
Vidim ja da mi pravimo TOP temu - php/mysql zaq pocetnike?

Dakle, prvo da ti preporucim literaturu:
http://yu.php.net/docs.php
ili tacnije:
http://yu.php.net/docs-echm.php za extended varijantu (sa primerima)
Za kombinaciju php/mysql imas na netu milijardu uputstava, potrazi preko pretrazivaca "php mysql tutorial" ili pogledaj top teme vec ovde na php forumu, pisano je milijardu puta o tome.

Dalje, sto se tvog konkretnog problemna tice, pogledaj
http://yu.php.net/manual/en/language.variables.external.php
i
http://yu.php.net/variables.predefined
[ starter1 @ 19.04.2006. 13:59 ] @
Sada mi index.html file izgleda ovako:
<html>
<body><form action="pro.php" method="POST">
<td>Upisite ime</td>
<td align="center"><input type="text" name="ime" size="10"
maxlength="10" /></td>
<input type="submit" value="Trazi" name="submit"><br />
</form></body>
</html>

A pro.php ovako
<?php
// Connecting, selecting database
$link = mysql_connect('localhost', 'root', '')
or die('Could not connect: ' . mysql_error());
echo 'Connected successfully';
mysql_select_db('Imenik') or die('Could not select database');
$ime = $_POST['ime'];

// Performing SQL query
$query = 'SELECT * FROM imenik WHERE ime="$ime"';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
// Printing results in HTML
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";

// Free resultset
mysql_free_result($result);

// Closing connection
mysql_close($link);
//slijedeci red mi je samo za provjeru da vidim dali uzima varijablu
echo $ime
?>


Upisem ime i kliknem trazi ali on mi ne uzima upisano ime za varijablu...
A stavio sam mu i echo $ime i on mi ispise upisano ime(znaci to uzima kao varijablu.
Sto sam ovdje krivo napisao:
WHERE ime="$ime"';

[ Jbyn4e @ 19.04.2006. 14:05 ] @
posle linije $query = ...
stavi ispod :
echo $query;
pa vidi sta ti ispisuje.
generalno, mozes da koristis konkatenaciju za razdvajanje:
Citat:

$query = 'SELECT * FROM imenik WHERE ime=' . $ime; //da, dobro vidis, tacka je tu izmedju
odnosno
$query = 'SELECT polje1, polje2,polje3 FROM '. $tabela .'WHERE ime=' .$ime;


[ starter1 @ 19.04.2006. 14:11 ] @
Probao sam s .
Kada mu stavim
$query = 'SELECT * FROM imenik WHERE ime=".$ime"';
Nista mi ne pokazuje.A kada stavim
$query = 'SELECT * FROM imenik WHERE ime="Darko"';
Izbaci mi rezultat.
S time kada stavim
echo $ime
Ispise mi ime koje sam upisao(znaci uzima ga kao varijablu)
[ starter1 @ 19.04.2006. 14:17 ] @
Kada stavim
echo $query;

Upisem Pero i kliknem trazi ispise mi

Connected successfullySELECT * FROM imenik WHERE ime="Pero"Pero Peric 112233


S time da bi ja zelio da mi ispise samo
Pero Peric 112233

Ovo da je uspjesna konekcija to nije problem izbrisati ali neka ostane za sada..
[ Jbyn4e @ 19.04.2006. 14:37 ] @
Citat:

$query = 'SELECT * FROM imenik WHERE ime=".$ime"';

Ne citas sta sam napisao. Gde vidis znakove navoda kod mene na kraju? Naravno da ti ne ispise ono sto treba jer nisi dobar select upit napravio.
Ispravno:
Citat:

$query = 'SELECT * FROM imenik WHERE ime='.$ime;
ili
$query = 'SELECT * FROM imenik WHERE ime="'.$ime.'"';

Obrati paznju na znake ' i ".
Ako neces da ti ispusuje query, pa ti ukini (izbrisi, komentarisi) ono echo $query;

Dosta je od mene danas, imam ja i neka druga posla :)
[ starter1 @ 19.04.2006. 14:49 ] @
@ Jbyn4e
Hvala puno si mi pomogao.
S ovim radi
$query = 'SELECT * FROM imenik WHERE ime="'.$ime.'"';

Ako moze jos jedno pitanje kako da ukljucim * u trazenje? t.j
da ne upisem puno ime nego recimo
Per*
a on da mi izbaci
Pero Peric 112233
[ SmilieBG @ 19.04.2006. 15:06 ] @
zaboga starter, pa ovo ispade prava dopisna skola ovde :(
Zar niti jednu od ovih informacija nisi sam mogao da pronadjes? Internet, ocito, imas... :(

SELECT * from imenik where ime = 'Per%'

%ra - sve sto se zavrsava na 'ra'
Pe% - sve sto pocinje sa Pe
%pera% - sve sto sadrzi 'pera' u sebi...

ima toliko dokumentacije, procitaj malo, nece ti skoditi - garantujem :)

Poz,
Sale
[ Jbyn4e @ 19.04.2006. 15:29 ] @
Smlilie, mislim da si zaboravio sql :P
Salim se, naravno, mozda moze tako (nisam nikad probao) ,ali uobicajeno je da se koristi LIKE.
Dakle
SELECT * from imenik where ime LIKE 'Per%'
ili jos bolje regular expression-i, a ako se dobro secam to ide nekako ovako:
SELECT * from imenik where ime REGEXP 'Per'

Za tacnu sintaksu konsultovati svoj mysql manual i select naredbu

A stvarno bi mogao malo da pocnes i da citas uputstva, ne sve da ti mi serviramo. Dosta je, odsad odgovaram samo ako budes iamo neki konkretan problem A NE ZNAS GDE DA NADJES RESENJE (a da nije u samom uputstvu, gde obicno i jeste).
[ SmilieBG @ 19.04.2006. 16:43 ] @
da, u pravu si, dok sam kucao vise sam razmisljao o nekim drugim stvarima ^^ :)

Poz,
Sale
[ starter1 @ 20.04.2006. 13:58 ] @
HVALA PUNO.

Sql komande sam pogledao u manual i to mi je jasno.Bunila me prilagodba u php-u.
Sada sam to rijesio
$query = 'SELECT * FROM imenik WHERE ime REGEXP "'.$ime.'"';

Dakle sada upisem Per ili Per* i kliknem trazi i on mi prikaze sve koji pocinju s tim imenom.

[Ovu poruku je menjao starter1 dana 20.04.2006. u 15:11 GMT+1]