webForumDet fria alternativet

Nybörjartråden...

9 svar · 403 visningar · startad av nitro2k01

nitro2k01Medlem sedan aug. 20039 342 inlägg
#1
<?php
include ("pw.php");
mysql_connect("localhost","dtd",$pass);
mysql_select_db("dtd");
// Närmare beskrivning av query skulle önskas
mysql_query("insert into gb1 values ('', 'test', 'testbbb', 'testccc', 'testddd')");
// Vad tusan returnerar denna query?
$result = mysql_query('SELECT * FROM gb1 LIMIT 0, 30');
echo $result + "\n";

?>

I princip så har en kompis skrivit ihop detta åt mig. Connect och select_db antar jag funkar bra, men jag förstår mig inte på query. Han sa att den tomma strängen står för auto-increment av index. Om man inte villa autoincrementa, hur får man reda på längden då? (antalet index)
Vad returnerar den andra queryn, och hur kan jag använda det?

BäckmanMedlem sedan nov. 2001274 inlägg
#2

Jag kan göra ett försök på en förklaring. Håll till godo.

mysql_query("insert into gb1 values ('', 'test', 'testbbb', 'testccc', 'testddd')");

Ovanstående kodsnutt sätter in angivna värden i tabellen gb1. Det som är lite klurigt är att fälten i tabellen inte är angivna, vilket kan göra det lite svårt att förstå. Ponera att tabellens fält är id, förnamn, efternamn och ålder. Då skulle det kunna se ut såhär.

mysql_query("insert into gb1 ('id', 'fornamn', 'efternamn', 'alder') values ('', 'Linus', 'Bäckman', '19')");

Om man har auto_increment på ett fält, som på fältet id i mitt exempel, så behöver man inte ens ha med det fältet vid en insert:

mysql_query("insert into gb1 ('fornamn', 'efternamn', 'alder') values ('Linus', 'Bäckman', '19')");

När man ska ta ut samma information ur databasen kan det se ut på följande sätt. Här nyttjar vi din andra SQL-fråga.

$result = mysql_query('SELECT * FROM gb1 LIMIT 0, 30');
while ($array = mysql_fetch_assoc($result)) {
echo $array["id"] ." ". $array["fornamn"] ." ". $array["efternamn"] ." ". $array["alder"] ."<br/>";
}

Om man istället vill specificera vilka fält man vill ta ut så tar man bort stjärntecknet (*). Detta kan vara bra om man vet att man inte behöver visa alla fält då det sparar lite belastning på databasen.

$result = mysql_query('SELECT id, fornamn, efternamn, alder FROM gb1 LIMIT 0, 30');
while ($array = mysql_fetch_assoc($result)) {
echo $array["id"] ." ". $array["fornamn"] ." ". $array["efternamn"] ." ". $array["alder"] ."<br/>";
}

LIMIT 0, 30 i frågan står för att man ska börja på första posten i databasen och visa 30 poster framåt. Denna funktion är väldigt bra att ha om man vill kunna bläddra bland informationen på flera sidor.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#3

Ok, prövar på det nu. Nästa fråga: Hur kommer man åt querystring-parametrar?

nitro2k01Medlem sedan aug. 20039 342 inlägg
#4

Spammar på här... Vad är skillnaden på typerna text och varchar?
Edit: Frågan besvarad av MySQL-dokumentationen

Patrik81Medlem sedan okt. 2001538 inlägg
#5

Lite snabbt svar på Querystring frågan:

Beroende på php-version så är det $_GET eller $HTTP_GET_VARS man använder, vilket är en array.

Har du till exempel:

http://en.adress/enSida.php?var1=Kalle&namn=Agnus
så finns informationen i:
$_GET['var1'] och $_GET['namn'] eller
$HTTP_GET_VARS['var1'] och $HTTP_GET_VARS['namn']

$_GET (lite kortare eller hur?) fungerar bara i lite nyare versioner av php, vet faktiskt inte riktigt från vilken version denna varianten började användas.

Hoppas det var ungefär vad du ville veta

MVH Patrik

lunne82Medlem sedan dec. 2003153 inlägg
#6

Patrik81 skrev:

vet faktiskt inte riktigt från vilken version denna varianten började användas.

PHP 4.1.0 har jag det för.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#7

Ang. Querystring, det var det jag letade efter. Men det funkar inte om formen har method="post"?!?!?

Nexus86Medlem sedan okt. 20023 030 inlägg
#8

Då ska du inte använda $_GET, då ska du använda $_POST. :)

Fungerar på samma sätt.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#9

Har inte PHP4, så då blir det väl $HTTP_POST_VARS

Nexus86Medlem sedan okt. 20023 030 inlägg
#10

nitro2k01 skrev:

Har inte PHP4, så då blir det väl $HTTP_POST_VARS

Japp. Men av vilken anledning använder du inte PHP4? :q

141 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)