Afisare mai multe rezultate din baza de date
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
claUdiu
- Mesaje: 313
Afisare mai multe rezultate din baza de date
Buna, am facut o mica cautare in timp real (jQuery + PHP) si am o problema. Sincer sa fiu, eu cred ca e de la codul PHP, dar o sa-l pun si pe cel de la jQuery:
index.html:
Cod: Selectaţi tot
<html>
<head>
<title>Cauta</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#cuvant').keyup(function(){
var Cuvant = $('#cuvant').val();
$.post('cauta.php', {cuvant: Cuvant}, function(Rezultat){
$('#afis_rez').html('cautare...').html(Rezultat);
});
});
});
</script>
</head>
<body>
<input type="text" name="cuvant" id="cuvant" />
<br/>
<br/>
<div id="afis_rez"> </div>
</body>
</html>
cauta.php:
Cod: Selectaţi tot
<?php
mysql_connect("localhost", "root", "eoclaudiuu") or die("Nu ma pot connecta la MySQL");
mysql_select_db("cauta");
$cuvant = $_POST['cuvant'];
$select = mysql_query("SELECT * FROM siteuri WHERE descriere_Site LIKE '%$cuvant%' OR titlu_site LIKE '%$cuvant%'");
$rez = mysql_fetch_assoc($select);
$rezultate = mysql_num_rows($select);
$titlu = $rez['titlu_site'];
$descriere = $rez['descriere_Site'];
$link = $rez['link_site'];
if ($rezultate == 0){
echo "Nu s-a gasit nici un rezultat";
}else if(empty($cuvant)){
echo "Te rog scrie un cuvant ca sa cauti ceva";
}else{
echo '<font color="green" size="4">'.$titlu.'</font>';
echo "<br/>";
echo '<font color="black" size="3">'.$descriere.'</font>';
echo "<br/>";
echo '<a href="'.$link.'">'.$link.'</a>';
echo "<br/>";
echo "<br/>";
}
?>
In baza de date am campurile: titlue_site, descriere_Site si link_site. Am doua inregistrari, si anume: Google si Gool SPOT. Cand scriu in casuta Go (cuvantul care apartine la amandoua inregistrari) imi apare doar Google. Nu ar trebuii sa-mi apara si Gool SPOT? Eu asa stiam... Ms mult.
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?
MarPlo
Mesaje: 4343
Buna,
Cand sunt returnate mai multe rezultate /randuri, setul de rezultate trebuie parcurs cu o functie repetitiva (WHILE, FOREACH).
Acestea ori sunt afisate direct in timpul parcurgerii, ori retinute intr-un array si afisate unde e codu pt. afisarea lor, cam asa:
Cod: Selectaţi tot
while($rez = mysql_fetch_assoc($select)){
$titlu[] = $rez['titlu_site'];
$descriere[] = $rez['descriere_Site'];
$link[] = $rez['link_site'];
}
// se parcurge unul din Array, si se adauga si celelalte in afisare (fiind asociate cu aceeasi cheie, de la 0
for($i=0; $i<count($link); $i++) {
echo $titlu[$i]. ' - '. $descriere[$i]. ' - '. $link[$i]. '<br/>';
}
claUdiu
Mesaje: 313
Multumesc mult! Merge.
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?