tomarild Skrevet 26. april 2009 Del Skrevet 26. april 2009 Hei! Prøver å gjøre et søk i noen databser jeg har, men får ikke noen resultater. Er det noen som raskt kan se om det er noe galt i kodene? Her gjøres søket: <form name="search" method="post" action="<?=$PHP_SELF?>"> Seach for: <input type="text" name="find" /> in <Select NAME="field"> <Option VALUE="deicao">Departure ICAO</option> <Option VALUE="dename">Departure name</option> <Option VALUE="aricao">Arrival ICAO</option> </Select> <input type="hidden" name="searching" value="yes" /> <input type="submit" name="search" value="Search" /> </form> Og her er resten: <? //This is only displayed if they have submitted the form if ($searching =="yes") { echo "<h2>Results</h2><p>"; //If they did not enter a search term we give them an error if ($find == "") { echo "<p>You forgot to enter a search term"; exit; } // Otherwise we connect to our Database mysql_connect("mysql.yourhost.com", "user", "password") or die(mysql_error()); mysql_select_db("database") or die(mysql_error()); // We preform a bit of filtering $find = strtoupper($find); $find = strip_tags($find); $find = trim ($find); //Now we search for our search term, in the field the user specified $data = mysql_query("SELECT * FROM routes WHERE upper($field) LIKE'%$find%'"); //And we display the results while($result = mysql_fetch_array( $data )) { echo $result['deicao']; echo " "; echo $result['dename']; echo "<br>"; echo $result['aricao']; echo "<br>"; echo "<br>"; } //This counts the number or results - and if there wasn't any it gives them a little message explaining that $anymatches=mysql_num_rows($data); if ($anymatches == 0) { echo "Sorry, but we can not find an entry to match your query<br><br>"; } //And we remind them what they searched for echo "<b>Searched For:</b> " .$find; } ?> Noen som vet? Lenke til kommentar
Eksos Skrevet 26. april 2009 Del Skrevet 26. april 2009 Angir du $searching noe sted? Ellers bytt if ($searching =="yes") til if($_POST['searching'] == "yes") og samme med $find. Lenke til kommentar
tomarild Skrevet 26. april 2009 Forfatter Del Skrevet 26. april 2009 Takk for svar Eksos! Prøvde det, men fikk da "You forgot to enter a search term" Lenke til kommentar
Warz Skrevet 26. april 2009 Del Skrevet 26. april 2009 Skrev du?: if ($_POST['find'] == "") { echo "<p>You forgot to enter a search term"; exit; } Det skulle funke det. Lenke til kommentar
tomarild Skrevet 26. april 2009 Forfatter Del Skrevet 26. april 2009 Tusen takk! Nå ser det ut som jeg får svar ihvertfall. Men svaret er "Sorry, but we can not find an entry to match your query". Jeg vet at det finnes entries i tabellen med det jeg søker på. Lenke til kommentar
Warz Skrevet 26. april 2009 Del Skrevet 26. april 2009 //Now we search for our search term, in the field the user specified $data = mysql_query("SELECT * FROM routes WHERE upper($field) LIKE'%$find%'"); Ser ikke at du har definert $field noe sted? Har jeg forstått deg rett at du skal hente feltet fra drop down menyen blir det vel bare å skrive dette i begynnelsen av koden et sted: $field = $_POST['field']; Vær dog obs på at det kan være en sikkerhets risiko i scriptet ditt... ved at noen sender andre felter. Spørs litt åssen du har satt det opp. Lenke til kommentar
tomarild Skrevet 26. april 2009 Forfatter Del Skrevet 26. april 2009 (endret) Takk for svar igjen Warz. Får det fortsatt ikke til å funke, men jeg skal prøve litt videre her jeg. Takk takk! Endret 26. april 2009 av tomarild Lenke til kommentar
tomarild Skrevet 26. april 2009 Forfatter Del Skrevet 26. april 2009 (endret) Hei igjen! Bare kom på at jeg kunne prøve meg med en annen ting jeg heller ikke får til. Jeg skriver ut noen data fra database, og det funker helt greit på denne måten (del av en større tabell) "<td width=50 cellpadding=2 cellspacing=2>" . "<font color=000000><a href=http://www.minwebside.com/login/index.php?page_id=" . $row['fltnum'] . ">" . $row['fltnum'] . "</a></font></td>" . Denne kodesnutten henter greit ut dataen i feltet fltnum, men jeg skulle gjerne ha linken til å fungere også? En eksempelverdi i fltnum er AL227. Hvis jeg da lager en php-side som heter AL227.php, så ønsker jeg at linken ovenfor leder dit. Når jeg klikker linken, så dukker http://www.minwebside.com/login/index.php?page_id=AL227 opp i URL-vinduet, men det vises ikke noe innhold. Dette ble rotete forklart, men håper noen skjønner hva jeg mener. Endret 26. april 2009 av tomarild Lenke til kommentar
Warz Skrevet 26. april 2009 Del Skrevet 26. april 2009 (endret) Hva med å skrive dette helt i toppen av index.php? <?php $page_id = $_GET['page_id']; if (isset($page_id)) { header('Location: http://www.minwebside.com/login/'.$page_id.'.php'); } ?> Her henter vi først ut page id fra urlen... hvis page_id ikke finnes så hopper vi over redirect, hvis den er satt så endrer vi side til http://www.minwebside.com/login/'.$page_id.'.php der $page_id blir byttet ut med verdien xxx: ?page_id=xxx Forøvrig er vel denne koden mer riktig: "<td width=50 cellpadding=2 cellspacing=2>" . "<font color=000000><a href='http://www.minwebside.com/login/index.php?page_id=" . $row['fltnum'] . "'>" . $row['fltnum'] . "</a></font></td>" Endret 26. april 2009 av Warz Lenke til kommentar
tomarild Skrevet 26. april 2009 Forfatter Del Skrevet 26. april 2009 [/b]Forøvrig er vel denne koden mer riktig:"<td width=50 cellpadding=2 cellspacing=2>" . "<font color=000000><a href='http://www.minwebside.com/login/index.php?page_id=" . $row['fltnum'] . "'>" . $row['fltnum'] . "</a></font></td>" Takk for at du hjelper til Warz. Setter pris på det! Fikk allikevel ikke den siste URLen til å fungere. Veldig rart, for helt korrekt URL vises i adressevinduet etter at jeg klikker på den. Lenke til kommentar
Warz Skrevet 26. april 2009 Del Skrevet 26. april 2009 Hva mener du med at den ikke fungerer egentlig? Lenke til kommentar
tomarild Skrevet 26. april 2009 Forfatter Del Skrevet 26. april 2009 Jeg var litt uklar der. Jeg mener at det går fint an å klikke på den. Browseren ledes til riktig URL, men det vises ikke noe innhold. Altså.... jeg ledes til linken http://www.minwebside.com/login/index.php?page_id=AL227 Men selv om det finnes en side som heter AL227, så skjer det ingenting. Lenke til kommentar
Warz Skrevet 26. april 2009 Del Skrevet 26. april 2009 Jeg var litt uklar der. Jeg mener at det går fint an å klikke på den. Browseren ledes til riktig URL, men det vises ikke noe innhold. Altså.... jeg ledes til linken http://www.minwebside.com/login/index.php?page_id=AL227 Men selv om det finnes en side som heter AL227, så skjer det ingenting. Du har altså en side som heter AL227.php i login mappen din? og du bruker scriptet jeg ga deg øverst i index filen? <?php $page_id = $_GET['page_id']; if (isset($page_id)) { header('Location: http://www.minwebside.com/login/'.$page_id.'.php'); } ?> Lenke til kommentar
tomarild Skrevet 26. april 2009 Forfatter Del Skrevet 26. april 2009 (endret) Ja, jeg har en fil som heter AL227.php. Testet nå med scriptet du sendte, og da fungerer det. Problemet er bare at alle mine filer i login-mappa blir included i et vindu i index-filen (slik at jeg får de samme rammene på siden hele tiden). Scriptet jeg benytter til å inkludere PHP-sidene er dette <?php if (empty($_GET['page_id'])) { require '100.php'; // default } else { $page_id = $_GET['page_id']; if (strval($page_id) === strval(intval($page_id)) && file_exists('' . intval($page_id) . '.php')) { require '' . intval($page_id) . '.php'; } else { require 'error.php'; // side med feilmelding } } ?> Det ligger midt i index-fila Endret 26. april 2009 av tomarild Lenke til kommentar
Warz Skrevet 26. april 2009 Del Skrevet 26. april 2009 Hva med noe sånt?: <?php // index siden: if (empty($_GET['page_id'])) { require '100.php'; // default } else { $page_id = $_GET['page_id']; // AL227.php require '' . $page_id . '.php'; } else { require 'error.php'; // side med feilmelding } } ?> Lenke til kommentar
tomarild Skrevet 26. april 2009 Forfatter Del Skrevet 26. april 2009 God idé, men det blir ikke riktig i forhold til bruken av siden. Det er en side for et virtuelt flyselskap, og i dette tilfellet skal jeg hente ut alle rutene fra databasen i en liste. En av mange ruter er AL227, og når det rutenavnet dukker opp i listen, så skal man unne klikke på det, og få mer informasjon om ruten via php-siden som heter AL227. Forstår du hva jeg mener? (utrolig vanskelig å forklare dette her) Lenke til kommentar
Warz Skrevet 26. april 2009 Del Skrevet 26. april 2009 men trenger du virkelig å lage en egen php side for hver? Er det ikke bedre å bare bruke http://www.minwebside.com/login/index.php?page_id=AL227 i stedet for å lage http://www.minwebside.com/login/al227.php osv... Lenke til kommentar
tomarild Skrevet 26. april 2009 Forfatter Del Skrevet 26. april 2009 Joda.... absolutt. Og det er det jeg forsøker på. Men jeg får det ikke til. Jeg får fram riktig URL http://www.minwebside.com/login/index.php?page_id=AL227 Men det vises ikke noe innhold. Hvis jeg derimot taster inn URLen http://www.minwebside.com/login/AL227.php så ser jeg siden med innhold. Hm.... Lenke til kommentar
Warz Skrevet 27. april 2009 Del Skrevet 27. april 2009 Skjønner... jeg testa dette scriptet på serveren min og det funka fint: <?php // index siden: if (empty($_GET['page_id'])) { require '100.php'; // default } else if (isset($_GET['page_id'])){ $page_id = $_GET['page_id']; // AL227.php require '' . $page_id . '.php'; } else { require 'error.php'; // side med feilmelding } ?> Lenke til kommentar
tomarild Skrevet 27. april 2009 Forfatter Del Skrevet 27. april 2009 Jaaaaaaaaaaaaaaaaaaa!!! Det fungerer som bare det! Tusen hjertelig. Fantastisk hjelp jeg har fått av deg! Tusen takk Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå