Avatar billede henrik2008 Nybegynder
28. februar 2011 - 21:09 Der er 3 kommentarer og
1 løsning

mysql søg

Hej, alle sammen.

Jeg er nybegynder i PHP og MYSQL.

Har en del erfaring med Visual Basic (det er godt nok længe siden jeg har rodet med visual basic 6, men var
nemt, visual basic 2008 express, er en del sværre pga. Net intregration osv, hver gang man skal skrive
et program med visual basic 2008 tillægger den en helvedes masse ekstra "1_Load(ByVal sender As System.Object,

ByVal e As System.EventArgs)".

Noget erfaringer med c++ og dark basic.

Indtil videre har jeg fået lavet nogle scirpt og alt lykkes, men nu er jeg kørt fast.


Mit spørgsmål er følgende,

Hvordan søger man i mysql databasen fra PHP ? , eks, fra en variabel eller html form.

Jeg vil her give et eks, på hvordan jeg selv tror man skal gøre!.




<?php


$a="HUND"; // tildeler tekst variablen "HUND"


// udskift brugernavn og password med dit eget password og brugernavn.

$forbindelse = mysql_connect('localhost', 'brugernavn', 'password'); // connect to mysql database

mysql_selectdb("mindatabase"); // vælg database fra mysql databasen.


// SELECT FRA tabel mintabel, HVOR  FELTET brugernavn feltet med indholdende værdi "HUND".
// fortæller, mysql databasen at den skal vælge feltet mitfelt med værdien.

$sql = mysql_query("SELECT  FROM mitabel WHERE mitfelt LIKE 'HUND'");

// her tjekker jeg tekst-strengen fra a$ med tekst-strengen fra mysql tebellen, fra feltet mitfelt
// hvis begge strenge indholder order "HUND" er if betingelsen sandt.


if ($a==$row)

{


echo "fundet";



}





}




?>



--------------------



man kunne vel også erstatte a$="HUND" med $brugernavn=$_REQUEST["brugernavn"]; ?

Dertil kan man vel også  bruge et "HIDDEN FIELD" I hmtl formen med et ID variable fra hmtl formen med <?php

$ID=1 ?>, og derved bruge mysql "INDSERT INTO mintabel brugernavn, ID ('$brugernavn, $ID'").

jEG har forstået, at man bruger et ID til at indexere felterne i mysql databasen, og derved kan man også bruge
ORDER BY (ID) DSEC ?, ØHH, man bruger vel et index til at indificere hvert felt, for at undgå at, hvis 2 felter
er ens, kan man jo ikke vide hvad for et felt der er hvad ?.

Skal jeg bruge en while med mysql_fetch_array for at søge i mysql databasen (ja, jeg, ved godt
at man bruger mysql_fetch_array til ad udtrække data fra databasen) ?.

Jeg har googlet på internettet omkring søge kritiere osv, nogle sider er gode til at forklare det, andre kommer
med en vildt kompleks forklaring og kode ekesmpler.
sommetider kan mysql sætninger godt blive for komplekse.

De PHP script med søge funktioner osv, jeg har lavede, virker ikke, hvad gør jeg gjaldt ?.


Jeg søger en meget nemt logisk og simpel forklaring.


giv et nemt eks.

jeg har tænk mig, at lave et login scritp i php og mysql
her har jeg tænk mig at lave det sådan, at man kan registrere med pass og login, derefter
bliver man smidt til login siden med HEADER ("LOCATION: www.EKS.DK")
Har også tænk mig at bruge herunder,

session() opretter session

isset med brugernavn og evt, cookie.

md5() kryptering.

mysql injection (senere hen når jeg er blevet lidt bedre til PHP osv).

Er md5 godt nok til mit login? (nej der er ikke ligefrem en netbank jeg skal have lavet!).

Jeg har også tænk mig at lave, hitcounter og statetik, email forms med kunde regestrering, gæstebog,
blog, new letter.............

PHP validering med EREG.

Jeg vil lave det meget enkelt.

PS. jeg vil gerne lave hjemmesider for folk,  (har faktisk lavet en del), men jeg mangler bare at
programmere et meget enkelt CMS, så brugerne/ kunderne selv kan lave om på hjemmesiden (kun billeder,

video,baggrund billeder, farver, tekst), jeg laver selv skabalonen  i html css osv.
Har lidt erfaring med Jommla og Wordpress (nej, jeg vil ikke bruge Joomla, jeg kan godt selv lide at
lave mit eget design og script osv).
Jeg håber ikke at man skal være udannet "atom fysiker" er ingeinør (ha, ha, bare for sjovt), bare for at lave

hjemmesider.

Hvor godt rustet skal man være med hensyn til programmering ? (ajax, css, xml, php, mysql ?).
Avatar billede showsource Seniormester
01. marts 2011 - 18:27 #1
WHERE mitfelt LIKE '%HUND'
finder rows hvor "mitfelt" starter med HUND
WHERE mitfelt LIKE 'HUND%'
finder rows hvor "mitfelt" ender på HUND
WHERE mitfelt LIKE '%HUND%'
finder rows hvor "mitfelt" har HUND et eller andet sted

Mener jeg da.......
Avatar billede showsource Seniormester
01. marts 2011 - 18:28 #2
Og du skal huske på sql injections !

Brug mysqli eller pdo !!!!!
Avatar billede henrik2008 Nybegynder
03. marts 2011 - 21:51 #3
Tak, jeg har vist prøved med sql koden "%LIKE%, det duede vist ikke, selvfølgelig var det fordi jeg gjorde det forkert, men så, så jeg en anden løsning på nette, nemlig at man, kan proppe selve (hvis man bruger variablen fra POST eller GET hmtl form), i mysql sætningen som her $result=mysql_query("SELECT * FROM searchtb WHERE brugernavn='$brugernavn' AND password='$password'"); .

Jeg fandt også en nem måde at søge på i databasen med sætningen som denne, der returnere en række fra feltet fra mysql databasen, password og brugernavn, der kan man samlignes  både brugernavn og password tekst strengenarray variablen GET  fra html formen stemmer overns med med feltet fra mysql databasen password og brugernavn, det virker!.


$count=mysql_num_rows($result);



if($count==1)


{



echo "bruger er funder i database";

det er jo fint nok, egentlig prøver jeg at lave mit eget bruger login  med forgot password osv., men jeg prøver at lære det step by step, for at lære hver eneste sætning, so far so good.

Nu skal jeg bare prøve at lave en login registrering og en login script (har allrede lavet den!), nu virker det slet ikke mere, fordi array variablerne bliver glemt imellem hver site, indtil jeg kom i tanke om at jeg skal bruge SESSION() og SESSION_REGISTER til $brugernavn, og $password.
hmtl formen og registrering af brugernavn til mysql databasen med session( og session_register("$brugernavn"); plus samligning med if virker, nu har jeg lavet lidt om på php scriptet, så både brugernavn og password bliver registreret til mysql og tjekker med if sætningen, men nu virker det ikke mere.

her er mit scipt

regi.php

<?php



// database  = searchdb
// php variabel= $brugernavn.
// mysql tabel searchtb
// mysql felt = brugernavn
 
$brugernavn=$_REQUEST["brugernavn"]; 
$password=$_REQUEST["password"];




$forbindelse = mysql_connect('localhost', 'root', '0102712501');

mysql_selectdb("searchdb");


mysql_query("INSERT INTO searchtb (brugernavn,password)
VALUES ('$brugernavn','$password')");


mysql_selectdb("searchdb");



echo "bruger registreret!<br>";


$result=mysql_query("SELECT * FROM searchtb WHERE brugernavn='$brugernavn' AND password='$password'");




$count=mysql_num_rows($result);



if($count==1)


{



echo "bruger er funder i database";





}


echo $brugernavn;

echo $password;


search.php

<?php
session_start();
// database  = searchdb
// php variabel= $brugernavn.
// mysql tabel searchtb
// mysql felt = brugernavn
 







$forbindelse = mysql_connect('localhost', 'root', '0102712501');




mysql_selectdb("searchdb");


$result=mysql_query("SELECT * FROM searchtb WHERE brugernavn='$brugernavn' AND password='$password'");




$count=mysql_num_rows($result);



if($count==1)


{



echo "bruger er funder i database";





}


echo $_SESSION['$brugernavn'];

echo $_SESSION['$password'];




?>


Om jeg skal bruge mysqli, ja, men er det anderledes med koderne og syntaxen ?, jeg gider ikke at lære det hele forfra!.

PDO som er en extension til PHP med access til mysql databasen, æhh hvis jeg kan undgå, kan jeg vel bare bruge PHP (jeg bruger PHP 5.1 og myphpadmin 2.1!).

Henrik.
Avatar billede henrik2008 Nybegynder
19. juli 2011 - 16:45 #4
jeg lukker denne tråd. unskyld jeg glemte at lukke den.
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