/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Vise meddelse hvis søgeresultet er tom
Fra : Nederbasse


Dato : 25-11-05 10:43

Hejsa

Jeg vil gerne vise en meddelse hvis brugerens søgning i min db ikke giver
resultat
men enten bliver meddelsen vist hele tiden eller siden er tom.
Det har vel noget med rækkefølgen på formularen, query og visning af
meddelse at gøre eller hvad ?

LarsN





 
 
Ukendt (25-11-2005)
Kommentar
Fra : Ukendt


Dato : 25-11-05 18:15

> Jeg vil gerne vise en meddelse hvis brugerens søgning i min db ikke giver
> resultat

if(mysql_num_rows($result) == 0)
echo "0 rækker";
else
echo "Flere rækker";

> men enten bliver meddelsen vist hele tiden eller siden er tom.
> Det har vel noget med rækkefølgen på formularen, query og visning af
> meddelse at gøre eller hvad ?

Ja - måske vi kan finde fejlen, hvis du poster koden?

- Daniel



Nederbasse (27-11-2005)
Kommentar
Fra : Nederbasse


Dato : 27-11-05 12:31

>
> Ja - måske vi kan finde fejlen, hvis du poster koden?
>
> - Daniel

DOH!!

<?php
$km_nr = $_REQUEST["km_nr"];
$aarstal = $_REQUEST["aarstal"];
?>

HEAD
BODY

<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p>Søg på:</p>
<p>KM nr: <input type="text" name="km_nr" size="15">&nbsp; Eller
&nbsp;Årstal: <input type="text" name="aarstal" size="15">
<input type="submit" value="Søg" name="submit"></p>
</form>

<?php
$conn = mysql_connect("localhost", "XXX", "XXXX");
mysql_select_db("XXXX");
$result = mysql_query("SELECT * FROM coins WHERE km_nr='$km_nr' OR
aarstal='$aarstal' ORDER BY dk_nr DESC");
if(!$result) die("MySQL-fejl: ".mysql_error() );

while ($row = mysql_fetch_array($result)) {
if (mysql_num_rows($result==0)) {
echo "Intet i databasen";
}else {
?>

Viser resultat <? echo $row["aarstal"]; ?>
O.S.V.

<?php
}
}
mysql_close($conn);
?>

</body>
</html>
>



Jesper H (27-11-2005)
Kommentar
Fra : Jesper H


Dato : 27-11-05 19:41

Problemet er lige her:

<?PHP
[snip]

while ($row = mysql_fetch_array($result)) {
if (mysql_num_rows($result==0)) {
echo "Intet i databasen";


}else {


?>

Viser resultat <? echo $row["aarstal"]; ?>
O.S.V.


<?php


}
}
?>

mysql_fetch_array($result) returnerer ikke noget, hvis der ikke er
nogle resultater, hvormed indholdet af din while-løkke aldrig bliver
kørt - hvori du checker efter om der er nogle resultater

Du bør nok i stedet sætte din test-sætning udenfor while-løkken.
Udover det, så hedder det ikke:
if (mysql_num_rows($result == 0))
men
if (mysql_num_rows($result) == 0)

--
Mvh
Jesper, http://fdf.dk/landsdel1/


Nederbasse (28-11-2005)
Kommentar
Fra : Nederbasse


Dato : 28-11-05 12:54

SNIP
mysql_fetch_array($result) returnerer ikke noget, hvis der ikke er
nogle resultater, hvormed indholdet af din while-løkke aldrig bliver
kørt - hvori du checker efter om der er nogle resultater

Du bør nok i stedet sætte din test-sætning udenfor while-løkken.
Udover det, så hedder det ikke:
if (mysql_num_rows($result == 0))
men
if (mysql_num_rows($result) == 0)

--
Mvh
Jesper, http://fdf.dk/landsdel1/

Men så er jeg tilbage ved start, meddelsen bliver vist når brugeren går ind
på siden INDEN der er lavet en egentlig søgning
Meddelsen skal kun komme hvis der er lavet en søgning uden resultat

Det må være noget med´:
if submit (Kør forespørgslen)

jeg er desværre ikke særlig god til PHP

LarsN



Jesper H (28-11-2005)
Kommentar
Fra : Jesper H


Dato : 28-11-05 14:04

> Men så er jeg tilbage ved start, meddelsen bliver vist når brugeren går ind
> på siden INDEN der er lavet en egentlig søgning

Naturligvis, for søgningen bliver jo udført uanset om du har valgt
det eller ej

Så du kunne skrive følgende udenom hele din søge-algoritme:

if(isset($_REQUEST['submit']))
{
// SØGE-ALGORITME
}

--
Mvh Jesper, http://fdf.dk/landsdel1/


Nederbasse (30-11-2005)
Kommentar
Fra : Nederbasse


Dato : 30-11-05 10:05

SNIP
Så du kunne skrive følgende udenom hele din søge-algoritme:

if(isset($_REQUEST['submit']))
{
// SØGE-ALGORITME
}

--
Mvh Jesper, http://fdf.dk/landsdel1/

Nu ved jeg godt at jeg sikkert er fatsvag men hvor nøjagtig skal det sættes
ind ?
Her er nuværende testkode:
<?php
$km_nr = $_REQUEST["km_nr"];
$aarstal = $_REQUEST["aarstal"];
if(isset($_REQUEST['submit']))
{
$conn = mysql_connect("localhost", "XXXX", "XXXXX");
mysql_select_db("XXX");
$result = mysql_query("SELECT * FROM coins WHERE km_nr='$km_nr' OR
aarstal='$aarstal' ORDER BY dk_nr DESC") or die ("MySQL-fejl:
".mysql_error() );
while ($row = mysql_fetch_array($result)) {

?>

TEST<br>
Viser resultat<br>
KM nr:<? echo $row["km_nr"]; ?><br>
Årstal:<? echo $row["aarstal"]; ?><br>
Land:<? echo $row["land"]; ?>

<?php
}
}
mysql_close($conn);
if (mysql_num_rows($result) == 0)
{
echo "Det er intet i databasen";
}
?>

LarsN



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste