Avatar billede overgreat Forsker
11. juli 2005 - 12:08 Der er 13 kommentarer og
1 løsning

Hvorfor giver søgeformular ikke noget output

Hej alle

Jeg har en søgeformular, som ikke kommer med noget output.... håber i kan hjælpe mig til at se hvad der går galt. Jeg kan køre formularen men der kommer ikke noget ouput selvom der er biler indenfor intervallet!

På forhånd tak.

Nedenstående har jeg kort beskrevet de to tabeller som er i spil:


-----------------------------------
1.
-----------------------------------
Jeg har en tabel hvor jeg opretter biler.

bil_bil.pris indeholder priserne på disse biler
--------------------------------------------
2.
--------------------------------------------
Jeg har lavet en bil_pris tabel som indeholder id,low, high, og tekst. Den bruger jeg som valgmuligheder. Indholdet i bil_pris er sakset ind i nedenstående:

(1, 'null', 'null', 'Alle priser');
(2, 'null', '49999', '0-49.999 kr.');
(3, '50000', '99999', '50.000-99.999 kr.');
(4, '100000', '149999', '100.000-149.000 kr.');
(5, '150000', '199999', '150.000-199.999 kr.');
(6, '200000', '249999', '200.000-249.999 kr.');
(7, '250000', '299999', '250.000-299.999 kr.');
(8, '300000', 'null', 'Over 300.000 kr.');
---------------------------------------------

----------------
Selve koden:
--------------
<TITLE>Dan Søndergaard Automobiler</TITLE>
<link rel="stylesheet" type="text/css" href="style.css">

<?
if($_GET['up'] == "ja"){
    include("config.php");
    $db = mysql_connect($server, $user, $pass);
    mysql_select_db($database, $db);

    $foresp = mysql_query("
    SELECT bil_bil.pris, bil_bil.maerke AS maerke1
    FROM bil_bil INNER JOIN bil_pris ON (bil_pris.low IS NULL OR bil_bil.pris >= bil_pris.low) AND (bil_pris.high IS NULL OR bil_bil.pris <= bil_pris.high)
    WHERE bil_pris.id = $prisvalg ");

    while ($data = mysql_fetch_array($foresp))
{
    echo $data['maerke1'];
}
}else{
?>

    <h5><b><font size=4>Søg</font></b><p>

    <FORM METHOD=POST ACTION='soeg1111.php?action=soeg&amp;up=ja'>
<select name="prisvalg">
<?

  include("config.php");
  $db = mysql_connect($server, $user, $pass);
  mysql_select_db($database, $db);

$foresp = mysql_query("SELECT tekst, id FROM bil_pris ORDER BY id");
  include("config.php");
  $db = mysql_connect($server, $user, $pass);
  mysql_select_db($database, $db);
while ($data = mysql_fetch_row($foresp)){
echo "<option value='$data[1]'>$data[0]</option>";
}
?>
</select>
<INPUT TYPE=SUBMIT VALUE="  Søg  ">
</h5>

<?
}
?>
Avatar billede barklund Nybegynder
11. juli 2005 - 13:37 #1
Måske du skal bruge $_POST[prisvalg] i stedet for bare prisvalg - får du nogle fejlmeddelelser? Prøv evt. at smide en or die efter din mysql_query :)
Avatar billede overgreat Forsker
11. juli 2005 - 15:52 #2
Hej Barklund

Jeg har fundet ud af at den virker når jeg vælger et af intervallerne, men ikke når jeg vælger alle priser dvs den med null, null
Avatar billede barklund Nybegynder
11. juli 2005 - 16:23 #3
Hm, får du kun tomt resultsæt?
Avatar billede overgreat Forsker
11. juli 2005 - 16:31 #4
ja, når jeg vælger alle priser, men vælger jeg et specifikt interval hvor der er nogle biler, kommer de fint frem!
Avatar billede overgreat Forsker
11. juli 2005 - 16:32 #5
jeg har valgt tinytext til felterne i tabellen..... er det der fejlen ligger?
Avatar billede barklund Nybegynder
11. juli 2005 - 16:34 #6
Altså, det skal jo være tal? Tal skal altid ligge i nogle int-felter - ikke i tekst-felter.
Avatar billede overgreat Forsker
11. juli 2005 - 16:44 #7
Har rettet det, men den giver stadig samme fejl, når id=1 vælges

dvs

(1, 'null', 'null', 'Alle priser');
Avatar billede overgreat Forsker
11. juli 2005 - 16:45 #8
Den vælger ingen i stedet for alle
Avatar billede barklund Nybegynder
11. juli 2005 - 22:37 #9
De er vel ikke 'null' men null, hvis det er en int?
Avatar billede overgreat Forsker
12. juli 2005 - 09:32 #10
den bliver ved med at skrive 0, når jeg har skrevet null...

Jeg har sørget for at "not null" er rettet til "null".

Der er stadig samme problem.
Avatar billede barklund Nybegynder
12. juli 2005 - 09:40 #11
Du skal ikke skrive 'null', du skal vælge NULL. Hvis du bruger phpMyAdmin, så er der en lille checkboks før inputfeltet, hvor du kan krydse af - er denne krydset af, er feltet NULL. NULL er en speciel værdi, det er helt perfekt til denne slags situationer.
Avatar billede overgreat Forsker
12. juli 2005 - 22:23 #12
TUSIND TAK.........

Du hjalp og lærte undertegnede en del undervejs.

Sender du et svar så får de velfortjente point....
Avatar billede barklund Nybegynder
12. juli 2005 - 22:47 #13
Helt fint - og hvis du en anden gang hører noget om null i database-sammenhæng, så husk på at det er en særlig værdi - og ikke den tomme streng, strengen 'null', tallet 0 eller noget i den stil. Det er en helt speciel datatype, som bruges i situtationer, hvor der ikke er noget passende data at indsætte.
Avatar billede barklund Nybegynder
14. juli 2005 - 11:05 #14
Tark for points :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester