Avatar billede condor9 Nybegynder
26. juli 2003 - 15:39 Der er 33 kommentarer og
1 løsning

Søgning i database via hjemmeside

Jeg er ved at lave et kunde kartotek og jeg har fundet ud af at oprette et post i en database.

Nu ville jeg så gerne kunne søge i den database evt. på deres telefon nummer som indtastes.

Derfor vil jeg gerne høre om hvordan kan lave det så man skriver nummeret i en textbox og trykker på søg, så når den har fundet telefonnummeret skriver den de oplysninger den kan liggende i databasen i hver sin tekstbox.

Jeg ved ikke om det er forklaret godt nok, men ellers må jeg prøve igen..
Avatar billede condor9 Nybegynder
26. juli 2003 - 15:40 #1
Jeg kan tilføje at jeg har prøvet med det her ind til nu, men den kommer med fejl. Jeg er ret grøn i det, og kan derfor ikke se hvor fejlen ligger

//MySQL configuration end

$Kundenr = $_POST['Kundenr'];
$Navn = $_POST['Navn'];
$Tlf = $_POST[Tlf];
$Udlejningskode = $_POST[Udlejningskode];

if ($_POST['Kundenr'] == "Kundenr") {
    $Kundenr = "0000";
}

if ($_POST['Udlejningskode'] == "Udlejningskode") {
    $Udlejningskode = "0000";
}

mysql_connect("$host", "$user", "$pass");
mysql_select_db($db);

$result = mysql_query("select * from Kunde where Tlf") or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
echo ".$row[Navn]."<br>".$row[Kundenr]."</a> - ".$row[Udlejningskode]."<br><br>".$row[Tlf]."<br><br>";
}
mysql_close();

?>
Avatar billede ahv Nybegynder
26. juli 2003 - 15:41 #2
$result = mysql_query("select * from Kunde where Tlf='$Tlf'") or die(mysql_error());
$row = mysql_fetch_array($result);
echo ".$row[Navn]."<br>".$row[Kundenr]."</a> - ".$row[Udlejningskode]."<br><br>".$row[Tlf]."<br><br>";
Avatar billede ahv Nybegynder
26. juli 2003 - 15:43 #3
Du kan måske have glæde af at læse flg. artikel ->
http://www.webcafe.dk/artikler/sql/simpleforespoergsler/
Avatar billede condor9 Nybegynder
26. juli 2003 - 15:44 #4
Hej og tak for det hurtige svar..

Den melder fejl på linie 48, og det er den her:

echo ".$row[Navn]."<br>".$row[Kundenr]."</a> - ".$row[Udlejningskode]."<br><br>".$row[Tlf]."<br><br>";
Avatar billede ahv Nybegynder
26. juli 2003 - 15:45 #5
Prøv ->

echo "$row[Navn]<br>$row[Kundenr]</a> - $row[Udlejningskode]<br><br>$row[Tlf]<br><br>";
Avatar billede condor9 Nybegynder
26. juli 2003 - 15:46 #6
Det virker... Mange tak for hjælpen..

Hvis jeg løber ind i et problem igen, har du så lyst til at hjælpe ? :o)
Avatar billede ahv Nybegynder
26. juli 2003 - 15:46 #7
Altid :o)
Avatar billede condor9 Nybegynder
26. juli 2003 - 15:55 #8
Vil det være muligt at putte resultatet ind i en textbox ?
Avatar billede ahv Nybegynder
26. juli 2003 - 16:23 #9
Det du trækker du sætter du blot som value.
Avatar billede condor9 Nybegynder
26. juli 2003 - 16:29 #10
det prøver jeg lige..
Avatar billede condor9 Nybegynder
26. juli 2003 - 21:58 #11
det kan jeg sq ikke hitte ud a :o|

kan du give et kort eksempel ?
Avatar billede condor9 Nybegynder
26. juli 2003 - 22:01 #12
<table border="0" cellspacing="0" width="289">
  <tr>
    <td width="287">Navn:<input type="text" name="Navn" size="20" ></td>
  </tr>
  <tr>
    <td width="287">Kunde Nr.: <input type="text" name="Kundenr" size="20"></td>
  </tr>
  <tr>
    <td width="287">Udlejnings Nr.: <input type="text" name="Udlejningskode" size="20"></td>
  </tr>
  <tr>
    <td width="287">Telefon Nr.: <input type="text" name="Tlf" size="20" values="$row[Tlf]"></td>
  </tr>
</table>
Avatar billede ahv Nybegynder
26. juli 2003 - 22:09 #13
<table border="0" cellspacing="0" width="289">
  <tr>
    <td width="287">Navn:<input type="text" name="Navn" size="20" ></td>
  </tr>
  <tr>
    <td width="287">Kunde Nr.: <input type="text" name="Kundenr" size="20"></td>
  </tr>
  <tr>
    <td width="287">Udlejnings Nr.: <input type="text" name="Udlejningskode" size="20"></td>
  </tr>
  <tr>
    <td width="287">Telefon Nr.: <input type="text" name="Tlf" size="20" values="<?php echo $row['Tlf']; ?>"></td>
  </tr>
</table>
Avatar billede condor9 Nybegynder
26. juli 2003 - 22:13 #14
ok, hvor helle skal jeg placere disse tables og textboxe ? nede i selve sql scriptet eller oppe i form scriptet ?

siden ser sådan ud, hvor skal jeg så placere det for at det kommer til at virke ?

<form method='post' action='<?=$PHP_SELF?>'>
<table border="0" cellspacing="0" width="226" height="137">
  <tr>
    <td width="224" height="135"><font face="Arial">Indtast Telefon Nr. </font><table
    border="0" cellspacing="0" width="205">
      <tr>
        <td width="58"><input type="text" name="Tlf" value=""
        onfocus="if(this.value=='E-mail')this.value='';"
        onblur="if(this.value=='')this.value='E-mail';" size="22"></td>
        <td width="57"><input type="submit" name="send" value="Søg"></td>
      </tr>
    </table>
    </td>
  </tr>
</table>
</form>
//Hvor skal jeg placere det her ?
<form method='get' action='<?=$PHP_SELF?>'>
<table border="0" cellspacing="0" width="289">
  <tr>
    <td width="287">Navn:<input type="text" name="Navn" size="20"></td>
  </tr>
  <tr>
    <td width="287">Kunde Nr.: <input type="text" name="Kundenr" size="20"></td>
  </tr>
  <tr>
    <td width="287">Udlejnings Nr.: <input type="text" name="Udlejningskode" size="20"></td>
  </tr>
  <tr>
    <td width="287">Telefon Nr.: <input type="text" name="Tlf" size="20" values="<?php echo $row['Tlf']; ?>"></td>
  </tr>
</table>
</form>
//hertil

<?php

//MySQL configuration start

$host = "localhost";    //Enter the address to your MySQL server here
$user = "video";            //Enter the username to your MySQL server here
$pass = "video";            //Enter the password to your MySQL server here
$db = "videobutik";        //Enter the database on your MySQL server here

//MySQL configuration end

$Kundenr = $_POST['Kundenr'];
$Navn = $_GET['Navn'];
$Tlf = $_POST[Tlf];
$Udlejningskode = $_POST[Udlejningskode];

mysql_connect("$host", "$user", "$pass");
mysql_select_db($db);

$result = mysql_query("select * from Kunde where Tlf='$Tlf'") or die(mysql_error());
$row = mysql_fetch_array($result);

echo "$row[Navn]<br>$row[Kundenr]</a><br> - $row[Udlejningskode]<br>$row[Tlf]<br><br>";
mysql_close();

?>
Avatar billede ahv Nybegynder
26. juli 2003 - 22:14 #15
Nede efter SQL'en
Avatar billede condor9 Nybegynder
26. juli 2003 - 22:14 #16
det prøver jeg.
Avatar billede condor9 Nybegynder
26. juli 2003 - 22:17 #17
hmm, det virker bare stadig ikke..
Avatar billede condor9 Nybegynder
26. juli 2003 - 22:30 #18
Jeg har fået det til at virke.. :o)

Der skulle ikke s på values...

Tak for hjælpen
Avatar billede condor9 Nybegynder
27. juli 2003 - 10:52 #19
Vil det være muligt at have 2 MySQL funktioner på samme side ?

Jeg kunne godt tænke mig at man kunne lave det sådan at søgesiden skulle indeholde en update funktion også.
Er det muligt at gøre det ?

En anden ting er, er kan det ikke lade sig gøre at putte et output fra søgningen ind i et <textarea> ? jeg syntes ikke jeg kan få det til at virke.
Avatar billede ahv Nybegynder
27. juli 2003 - 10:58 #20
Begge dele er muligt :o)

Når du skal indsætte en forudbestemt value i et textarea skal det ikke gøres via en value="" ligesom i et input felt.
Fremgangsmåden er istedet lidt anderledes, her ses et eksempel ->
<textarea..........><?php echo $row['text']; ?></textarea>
Avatar billede condor9 Nybegynder
27. juli 2003 - 11:06 #21
ok, det med textarea har jeg fået til at virke, Jeg har desuden prøvet og se om det kunne lade sig gøre at putte et output ind en checkbox (den med det lille flueben) det virkede ikke, og så i en scrolldown textbox, det kunne jeg heller ikke få til at virke.. men hvordan med det andet ?

Jeg tror ikke jeg fik det forklaret godt nok før, men jeg har en søge side i mit kartotek, når der søges på at telefonnummer kommer navn og sådan noget frem, det ville jeg gerne kunne ændre i nogle af de værdier der er i boxene og opdatere dem til databasen..
Avatar billede nicklasb Nybegynder
27. juli 2003 - 12:25 #22
For at sætte det ind i en checkboks skal det også ind som value. Du bliver dog nød til også at skrive den forklarende tekst ved siden af, da der ikke hører en dissideret "tekst" med på en checkboks..
et eksempel på en tjekboks kunne være følgende:

<INPUT TYPE="checkbox" VALUE="Tekst her" NAME="husdyr"> Har husdyr?

Der vil variablen $_POST['husdyr'] indeholde teksten 'Tekst her'
I dette tilfælde ville det selvfølgelig være smartere med et int i stedet, som angiver om personen har et husdyr ud fra tallene 0 og 1.

Du kunne derfor ved udtrækket af dataene skrive en :

<INPUT TYPE="checkbox" VALUE="<? if ($harhusdyr == 1) echo 0; else echo 1; ?>" NAME="husdyr"> Har husdyr?

og så bare opdatere værdien lige meget hvad i sql-forspørgelsen..
(Der er også mange andre måder at gøre det på.. Men det er klart en af de letteste at gennemskue hvis man ikke har så meget forstand på det.

men hensyn til en dropdown boks skal denne jo kun bruges hvis der er flere værdier?? Altså fx ved et udtag på alle navnene i databasen. Hvor har du et sådan udtræk?? Hvis du fortæller hvad det skal bruges til vil det helt sikkert være meget lettere at hjælpe med det også.. :D

Det sidste du beskriver med at opdaterer kan også saktens lade sig gøre.
Der skal du bare have lavet et hidden felt med en angivelse af at du hellere vil opdaterer eller kalde submit-knappen noget andet, så du kan tjekke på dette.

i php-delen skriver du så bare

<? if ($_POST['action'] == 1) {
    // Opdater felterne
} elseif ($_POST['action'] == 2) {
    // Hent data
}
?>

og udfylder så med de funktioner der skal ske i de forskellige tilfælde.
Håber du forstår??

/Nicklas B.
Avatar billede condor9 Nybegynder
27. juli 2003 - 13:50 #23
jow, jeg tror jeg forstår det, det er bare lige meget hvilem værdi den får checkboxen så vil den være på nul.. Det er det jeg ikke forstår.
Avatar billede condor9 Nybegynder
27. juli 2003 - 13:56 #24
hvis det er kan du så ikke prøve og kontakte mig på mail ? condor-9@mail.dk
Avatar billede condor9 Nybegynder
27. juli 2003 - 14:20 #25
Det her er de tre sql kommandoer jeg bruger til henholdsvis at søge med, oprette med og rette med.
Oprette:
if(!empty($_POST[Nr])){
    $insertSQL="insert into Kunde (Nr, Eq, Sw, Navn, Adr, Ib, Pnm, Btb, Rnr, Rty, Bem) values ('$Nr', '$Eq', '$Sw', '$Navn', '$Adr', '$Ib', '$Pnm', '$Btb', '$Rnr', '$Rty', '$Bem')" ;
    mysql_query($insertSQL);
}

søge:
$result = mysql_query("select * from Kunde where Nr='$Nr'") or die(mysql_error());
$row = mysql_fetch_array($result);

og jeg kunne forestille mig at det er denne kommando jeg skal bruge til at opdatere med:
mysql_query("update kunde set Nr = '$Nr', Eq = '$Eq', Sw = '$Sw', Navn = '$Navn', Adr = '$Adr', Ib = '$Ib', Pnm = '$Pnm', Rnr = '$Rnr', Rty = '$Rty', Bem = '$Bem' where Nr = 'Nr'");

De har så 3 knapper på siden..
Avatar billede condor9 Nybegynder
27. juli 2003 - 15:39 #26
Nu har jeg prøvet at gøre det sådan her, men den eneste funktion der virker er Søg.

if ($_POST['soeg'] == Søg) {
    $result = mysql_query("select * from Kunde where Nr='$Nr'") or die(mysql_error());
    $row = mysql_fetch_array($result);
    // søger
} elseif ($_POST['opret'] == opret) {
    $insertSQL="insert into Kunde (Nr, Eq, Sw, Navn, Adr, Ib, Pnm, Btb, Rnr, Rty, Bem, Tn, Tm, Sb) values ('$Nr', '$Eq', '$Sw', '$Navn', '$Adr', '$Ib', '$Pnm', '$Btb', '$Rnr', '$Rty', '$Bem', '$Tn', '$Tm', '$Sb')" ;
    mysql_query($insertSQL);
    // indsætter
} elseif ($_POST['opdater'] == opdater) {
    $mysql_query("update kunde set Nr = '$Nr', Eq = '$Eq', Sw = '$Sw', Navn = '$Navn', Adr = '$Adr', Ib = '$Ib', Pnm = '$Pnm', Rnr = '$Rnr', Rty = '$Rty', Bem = '$Bem' where Nr = '$Nr'");
    // opdatere
}
Avatar billede condor9 Nybegynder
27. juli 2003 - 17:29 #27
Det med dropdown boksen fik jeg også forklaret lidt dårligt, på den side hvor man indtaster en kunde, er der en dropdown boks. Der kan man vælge nogle værdier. Den værdi man så vælger gemmes i databasen.

Når man så bruger søgefunktionen, så den værdi man valgte da man oprettede kunden, skulle jo gerne vises i dropdown boksen igen..
Avatar billede condor9 Nybegynder
27. juli 2003 - 23:04 #28
Nåå, kan det virkelig passe at i ikke har bare et lille svar :o)

Jeg sidder lidt fast lige nu.. :o|
Avatar billede condor9 Nybegynder
28. juli 2003 - 13:55 #29
Kan lidt flere points lokke ? :o)
Avatar billede nicklasb Nybegynder
28. juli 2003 - 16:06 #30
joo.. kan da saktens svare på det du har spurgt om der, men har desværre også andet at lave.. Så du får altså svarene når jeg har tid.. :D

For at lave det med selectboksen mangler du vist så vidt jeg kan se, at oplyse hvor dataene i denne kommer fra.. Evt vis hvordan disse data kommer ind på opret siden..

og vis så alt dit kode i stedet, og evt et sted hvor man kan prøve det. (Gidder ikke skulle til at sidde og oprette tabeller osv for at se hvordan det virker..
Avatar billede condor9 Nybegynder
28. juli 2003 - 16:56 #31
Det er ok, det er også mere ment i sjov, men jeg er da helt sikker på du ved hvordan det er når man er kørt fast og ikke kan komme videre..

Send mig en mail på condor-9@mail, så sender jeg dig en tilbage med nogle filer og et par link..
Avatar billede cvp Nybegynder
29. juli 2003 - 14:34 #32
<INPUT TYPE='radio' VALUE='ja' NAME='valg' "; if ($row[valg] == ja) echo "CHECKED"; echo ">JA<BR>
Avatar billede cvp Nybegynder
29. juli 2003 - 14:35 #33
echo "<INPUT TYPE='radio' VALUE='ja' NAME='valg' "; if ($row[valg] == ja) echo "CHECKED"; echo ">JA<BR>";
Avatar billede condor9 Nybegynder
30. juli 2003 - 08:19 #34
Nu forstod jeg ikke helt, men hvordan kunne det lige lade sig gøre at have 2 MySQL kommandoer på samme side med hver sin submit knap ?
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
Computerworld tilbyder specialiserede kurser i database-management

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