Avatar billede bengtwendt Nybegynder
08. januar 2003 - 08:25 Der er 17 kommentarer og
1 løsning

PHP kode virker ikke?

Hej Jeg bakser med koden nedenunder. Jeg kan ikke få den til at hente oplysninger i MySql DB.

Jeg får søgeordet skrevet ud, hvis det står der hvor det står nu, men flyttes det 2 linier ned, til // test // kommer det ikke ud.
Er der nogen der kan se hvad der er galt?


<form action="medlemmerb.php" method="post">
<input type="text" name="valg" value="navn" maxlength="10">
<input name="soeg" type="submit" value="Soeg">


<?
echo "<tr ></tr>";


$conn = mysql_connect("localhost", "*****", "*****");
mysql_select_db("bbbnoder");


$result = mysql_query("select navn from medlemmer where navn like '%valg%'");
echo $_POST['valg']; // Udskriver søgeord. //
while ($row = mysql_fetch_array($result)) {
extract($row);
// test //
echo "<td>$navn</td>";
echo "<td>$efternavn</td>";
echo "<td>$instrument</td>";
echo "<td><a href=\"mailto:$mail\">$mail</a>;</td>";
echo "</tr>";
}
$number = 0;
mysql_close();

?>

Venligst Bengt
Avatar billede Slettet bruger
08. januar 2003 - 08:31 #1
Følgende linie fejler.... og derfor bliver koden i while-løkken ikke parset!
$result = mysql_query("select navn from medlemmer where navn like '%valg%'");
Avatar billede Slettet bruger
08. januar 2003 - 08:32 #2
Og
$result = mysql_query("select navn from medlemmer where navn like '%valg%'");

Skal nok være
$result = mysql_query("select navn from medlemmer where navn like '%".$_POST["valg"]."%'");
Avatar billede sostack Nybegynder
08. januar 2003 - 08:33 #3
$result = mysql_query("select navn from medlemmer where navn like '%valg%'");
skal være:
$result = mysql_query("select navn from medlemmer where navn like '%" . $_POST['valg' . "%'");

Ellers finder den jo ikke noget, med mindre der står valg i et navnefelt!
//sostack
Avatar billede bengtwendt Nybegynder
08. januar 2003 - 09:02 #4
Mange tak Regin , det var lige det der manglede,

Bengt
Avatar billede Slettet bruger
08. januar 2003 - 09:03 #5
Jeg smider lige et svar så! :P
Avatar billede bengtwendt Nybegynder
08. januar 2003 - 11:51 #6
Jeg kan se man skal bruge $_POST, men hvis nu brugerne skal kunne vælge hvilken række de skal søge i, hvordan gøres det så?

Jeg tænker mig at man skal skrive sit søgeord og så klikke på navn eller efternavn eller adresse?

Kan funktionen med post bruges 2 gange?

Bengt
Avatar billede Slettet bruger
08. januar 2003 - 11:53 #7
Ja, så bruger du bare:
$result = mysql_query("select navn from medlemmer where efternavn like '%" . $_POST['valg' . "%'");

En idee ville være i starten af dit script at skrive:
$valg = $_POST['valg'];
og så bruge $valg i stedet for $_POST['valg] .... bare for gennemskuelighedens skyld!
Avatar billede sostack Nybegynder
08. januar 2003 - 11:58 #8
Jeg ville bruge:
$valg = $_POST['valg'];
$result = mysql_query("select * from medlemmer where navn like '%" . $valg . "%' || efternavn like '%" . $valg . "%' || adresse like '%" . $valg . "%'");

Da man så kun laver et opslag i databasen, men checker på alle tre kolonner.

//sostack
Avatar billede Slettet bruger
08. januar 2003 - 11:59 #9
" || " skal nok være " OR "...
Avatar billede sostack Nybegynder
08. januar 2003 - 12:00 #10
regin>> Tjah, vammel gane / gammel vane ;-}
Avatar billede bengtwendt Nybegynder
08. januar 2003 - 12:01 #11
Hmm, jeg kunne tænke mig at efternavn var et variabel istedet. enten ved en knap: knap 1 = navn knap 2= efternavn knap 3 = adresse.

Kan du se hvad jeg mener ?
Avatar billede Slettet bruger
08. januar 2003 - 12:05 #12
echo "<input type=\"checkbox\" name=\"search\" value=\"efternavn\"><br>
<input type=\"checkbox\" name=\"search\" value=\"navn\"><br>
<input type=\"checkbox\" name=\search"\" value=\"adresse\"><br>";

Så er resten bare et spørgsmål om en masse if/elseif/else for at lave SQL-kaldet udfra variablen $_POST["search"];
Avatar billede sostack Nybegynder
08. januar 2003 - 12:07 #13
<?
$valg = $_POST['valg'];
$knap = $_POST['knap'];
switch($knap) {
CASE "navn":
$result = mysql_query("select * from medlemmer where navn like '%" . $valg . "%'";
Break;
CASE "efternavn":
$result = mysql_query("select * from medlemmer where efternavn like '%" . $valg . "%'";
Break;
CASE "navn":
$result = mysql_query("select * from medlemmer where adresse like '%" . $valg . "%'";
Break;
DEFAULT:
echo "Der er nogen der fusker!";
Break;
}
Avatar billede bengtwendt Nybegynder
08. januar 2003 - 12:53 #14
Hej igen

det blev så til denne linie

$result = mysql_query("select navn from medlemmer where navn like '%" . $_POST ["valg"] . "%'"  or " efternavn like '%" . $_POST ["valg"] . "%'" or " adresse like '%" . $_POST ["valg"] . "%'");

Men den er ikke helt korekt? hvorfor?
Avatar billede Slettet bruger
08. januar 2003 - 12:56 #15
$result = mysql_query("select navn from medlemmer where navn like '%".$_POST ["valg"] ."%'  or  efternavn like '%".$_POST ["valg"]."%' or  adresse like '%".$_POST ["valg"]."%');

Så skulle det virke!

Du havde skrevet " or " du skulle bare have skrevet  or 
hvis du er med på hvad jeg mener!?
Avatar billede bengtwendt Nybegynder
08. januar 2003 - 13:59 #16
Ja det er rigtigt, ikke lige til at finde ud af med alle de " "

Jeg har kun et lille problem nu
Når siden kaldes skrives alle posterne ud, jeg ville godt have den til at der ikke kom noget for man klikker på søg??
Avatar billede Slettet bruger
08. januar 2003 - 14:01 #17
if(count($_POST)>0 && isset($_POST["valg"]))
{
  udskriv poster her!
}
Avatar billede bengtwendt Nybegynder
08. januar 2003 - 14:07 #18
Mange mange tak for hjælp, jeg haprøver frem og tilbage i næsten 2 måneder, nu virker det som jeg vil have det.

Venlig hilsen Bengt
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