Avatar billede aske2 Nybegynder
13. januar 2003 - 11:27 Der er 10 kommentarer og
1 løsning

Hvorfor '".$_POST['soeg_firma']."

Hej eksperter

Jeg håber, at der er en, der vil give mig en forklaring på følgende formentlig lette spørgsmål.

Hvorfor er det, at jeg skal have ".  og ." med?
Avatar billede sone Nybegynder
13. januar 2003 - 11:31 #1
. bruges til at sammensætte 2 strenge, dvs.

'Hej Ole' er det samme som 'Hej '.'Ole', eller
$navn = 'Ole';
echo 'Hej '.$navn
Avatar billede aske2 Nybegynder
13. januar 2003 - 11:35 #2
sone>> Tak for det. Altså . bruges til at sammensætte 2 strenge, men...

Hvorfor skal jeg have alle disse '". og ."'
Og i '".$_POST['soeg_firma']."' sammensætter jeg vel ikke en streng???

Undskyld hvis jeg bare er for dum eller langsom :-)
Avatar billede sone Nybegynder
13. januar 2003 - 11:40 #3
Vis lige hele din linie?
Avatar billede aske2 Nybegynder
13. januar 2003 - 11:42 #4
Ja nu har jeg altså taget hele skidtet.

if ($_POST['soeg_firma'])
{
    $result = mysql_query("SELECT kunde.kundeid, kunde.firmanavn, foresporgsel.kontaktperson,
    kunde.gade, kunde.postnr, postnummer.byen, kunde.land, kunde.telefon, kunde.telefax,
    kunde.mail, foresporgsel.fspid, foresporgsel.type, foresporgsel.dato,
    foresporgsel.fkstatusid, status.tilstand FROM kunde, postnummer, foresporgsel, status WHERE
    firmanavn = '".$_POST['soeg_firma']."' AND kunde.kundeid=foresporgsel.fkkundeid AND
    kunde.postnr=postnummer.postnummer AND foresporgsel.fkstatusid=status.statusid");

    echo "<b>Nedenstående er resultatet af søgningen på ".$_POST['soeg_firma']."</b><br /><br />";
        include ("vis_resultat.php");
}
Avatar billede sostack Nybegynder
13. januar 2003 - 11:49 #5
Her har du jo tre strenge:
streng 1: "<b>Nedenstående er resultatet af søgningen på "
streng 2: $_POST['soeg_firma']
streng 3: "</b><br /><br />"
dem sætter du sammen med punktummer i din echo sætning ;-]

/sostack
Avatar billede sone Nybegynder
13. januar 2003 - 11:50 #6
Det er (sådan set) nemt....
Du bruger " til at afgrænse din database streng (" eller ' kan bruges i PHP).
Men da man i SQL bruger ' til at afgrænse strenge, skal du bruge "
soeg_firma er en streng, så i SQL skal der stå:
firnanavn='test' - derfor ...WHERE firmanavn = '".$_POST['soeg_firma']."' AND...

Du kan da prøve at ligge hele din SQL sætning ind i en variabel, udskrive den og kalde mysql_query med variablen - så kan du se den "rene" SQL.
Avatar billede aske2 Nybegynder
13. januar 2003 - 11:52 #7
sostack>> Tak for det - det kan jeg da i det mindste godt se :-) Men hvad med den i queryen? Altså denne her:

'".$_POST['soeg_firma']."'
Avatar billede tipsen Nybegynder
13. januar 2003 - 11:54 #8
Prøv at udskrive din sql-streng - så kan du sikkert se logikken - MySQL vil gerne have tekststrenge i enkelt anførselstegn - det er årsagen til at du skriver som du gør ovenfor.
Avatar billede sostack Nybegynder
13. januar 2003 - 11:59 #9
også tre strenge:
streng 1: "SELECT kunde.kundeid, kunde.firmanavn, foresporgsel.kontaktperson,
kunde.gade, kunde.postnr, postnummer.byen, kunde.land, kunde.telefon, kunde.telefax, kunde.mail, foresporgsel.fspid, foresporgsel.type, foresporgsel.dato, foresporgsel.fkstatusid, status.tilstand FROM kunde, postnummer, foresporgsel, status WHERE firmanavn = '"
streng 2: $_POST['soeg_firma']
streng 3: "' AND kunde.kundeid=foresporgsel.fkkundeid AND kunde.postnr=postnummer.postnummer AND foresporgsel.fkstatusid=status.statusid"

De to enkelt anførselstegn i WHERE firmanavn = '" og "' AND kunde.kundeid er for at forklare MySQL at feltet indeholder en strengværdi, og altså ikke en talværdi f. eks.

/sostack
Avatar billede aske2 Nybegynder
13. januar 2003 - 12:14 #10
sostack>> Tak for det. Kan du ikke lige smide et svar?
Avatar billede aske2 Nybegynder
09. marts 2003 - 22:20 #11
Da sostack tilsyneladende ikke smider et svar - og jeg gerne vil have lukket mine åbne spørgsmål - gives point til sone. Tak skal i have.
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