webForumDet fria alternativet

Lite allmänna php frågor...

11 svar · 186 visningar · startad av Eclipse

EclipseMedlem sedan juli 20003 825 inlägg
#1

Först ett tips på en väldigt bra php/mysql manual, den bästa jag hittat.
http://hotwired.lycos.com/webmonkey/99/21/index3a.html

---

$myDB=mysql_connect("localhost","root");
mysql_select_db("mysql",$myDB);

$res=mysql_query("SELECT * FROM users ORDER BY x_ID",$myDB);

while($myrow = mysql_fetch_row($res)){
-- printf("<OPTION VALUE=\"%s\">%s</OPTION>\n", $myrow["0"], $myrow["1"]);
}

Ovan lite kod från en drop down meny, jag vill kunna skriva $myrow["x_name"] i stället för $myrow["1"]!!

Varför inte detta!?

---
ASP kod:
tmp = tmp & "kåååd + databas läsningar " & vbCLRLF
tmp = tmp & "kåååd + databas läsningar " & vbCLRLF
tmp = tmp & "kåååd + databas läsningar " & vbCLRLF
tmp = tmp & "kåååd + databas läsningar " & vbCLRLF

response.write tmp
tmp = ""

Hur skriver jag i php?

------------------
"Never underestimate your opponents." - Name the movie.

AgaithMedlem sedan jan. 2001191 inlägg
#2

$myrow["0"] skall vara $myrow[0]

och du råkar inte hittat en bra pgsql manual med ???

EclipseMedlem sedan juli 20003 825 inlägg
#3

man kan skriva lite hur som helst... tack för tipset.

sök på google efter "pgsql tutorial". Det gjorde jag.

------------------
"Never underestimate your opponents." - Name the movie.

EclipseMedlem sedan juli 20003 825 inlägg
#4

Hur gör jag i php?
$res=mysql_query("SELECT * FROM users WHERE x_ID = $x_ID", $myDB);

---
ASP:
SQL = "SELECT * FROM users WHERE x_ID = " & request("x_ID")

------------------
"Never underestimate your opponents." - Name the movie.

AgaithMedlem sedan jan. 2001191 inlägg
#5

detta är något liknande jag brukar använda:

$conn = pg_connect("user=*****");
if (!$conn)
{
echo "Connection failed!.\n";
exit;
}

$sql="SELECT \* FROM tabell WHERE x_ID = $x_ID";
    $result_set = pg_Exec ($conn, $sql);
    $rows = pg_NumRows($result_set);
EclipseMedlem sedan juli 20003 825 inlägg
#6

"I get a grip" = "Jag greppar din tanke"

tmp grejen då?

------------------
"Never underestimate your opponents." - Name the movie.

BatboyMedlem sedan jan. 20001 006 inlägg
#7

, jag vill kunna skriva $myrow["x_name"] i stället för $myrow["1"]!!

Använd mysql_fetch_array() istället för mysql_fetch_row().

/j

------------------
R6

BitstateMedlem sedan nov. 2000432 inlägg
#8

en bra sak är att vara lite sparsam med "'s i php, har för mig att vb använder dem till strängar och antar därför att även asp gör det men i php finns även ', låt mig förklara..

" är tecken för php att gå igenom strängen medan ' bara visar en sträng utan kul i :)

säg att $var="hejsan" (här kör jag " i onödan, se nedan)

"$var kalle" blir hejsan kalle
medan
'$var kalle' blir $var kalle

dvs använd bara " där det behövs, annars ' så körs php skriptet snabbare då php inte behöver ens kolla om där är variabler i texten)

angående temp satsen fattar jag inte ens vad den gör...

tmp = tmp & "kåååd + databas läsningar " & vbCLRLF
tmp = tmp & "kåååd + databas läsningar " & vbCLRLF

om nu vbCLRLF är radbrytning och du vill ha ett resultat liknande detta:

tmp = tmp & "kåååd + databas läsningar
tmp = tmp & "kåååd + databas läsningar

så kör du

$tmp = $tmp . 'jidder jidder' . "\n";
$tmp = $tmp . 'jidder jidder' . "\n";

(egentligen kör man "jidder jidder \n" men tänkte vara lite övertydlig, här ser man oxå effekten av " tydligt.. '\n' returnerar just \n :)

response.write tmp

vad gör denna satsen? bara skriver ut till html sidan?, i så fall

echo $tmp;

tmp = ""

den funkar fint som den är, tänk bara på att ha ett ; i slutet

EclipseMedlem sedan juli 20003 825 inlägg
#9

Tack för ditt gedigna svar. Jag ska studera det där med enkelfjumpar och dubbelfjumpar.

Jag ska inte plåga er mer än nödvändigt med sunkig asp kåd men vbCRLF står då för Visual Basic Carrage Return Line Feed. Det finns lite olika varianter, t.ex. vbTAB, vbShortDate osv. vbMonday skriver "måndag" om man kör på svenskt OS eller "monday" om man kör US.

tmp loopen använder jag då jag skriver tabeller i html till skärmen och den funktionen är inte fullt så korkad som man kan få intrycket av, trust me! :-)

------------------
"Never underestimate your opponents." - Name the movie.

EclipseMedlem sedan juli 20003 825 inlägg
#10

--> Agaith
Jag tror inte vi använder samma databas, jag använder mysql. Rätta mig om jag har fel men du syftar på pgsql och dit har jag inte kommit. :-)

---

$myDB=mysql_connect("localhost","root");
mysql_select_db("mysql",$myDB);

$result=mysql_query("SELECT * FROM users WHERE x_ID = $x_ID",$myDB);

while($myrow = mysql_fetch_array($result)){
-- $name = $myrow["x_name"];
-- $ID = $myrow["x_ID"];
}

Jag testade och man kan skriva ut dom där värdena med <? print $name ?>. Huvudsaken är trots allt att det fungerar och det gör det nu men finns det ett smartare sätt kan man utverdera det...

---
Skriva - uppdatera - ta bort
Hur redigerar jag min databas då? Mer specifikt, vi kan börja med ASP kommandot:

SQL = "UPDATE users SET x_name = " & request("x_name") & " WHERE x_ID = " request("x_ID") & ";"
Conn.Execute(SQL)

------------------
"Never underestimate your opponents." - Name the movie.

BitstateMedlem sedan nov. 2000432 inlägg
#11

själva sql satsen skall (förutsat att det är standard sql) se ut precis likadan, dock genereras den på ett lite annat sätt.

jag hade rätt i mina tidigare antaganden så jag gissar vidare i asp jungeln ;)

request("x_name")

antar att request returnerar värdet i variabeln, då kör du tex bara

$sql = 'UPDATE users SET x_name = ' . $x_name . ' WHERE x_ID = ' . $x_ID . ';';

eller

$sql = "UPDATE users SET x_name = $x_name WHERE x_ID = $x_ID ;";

här ser man även skillnaden mellan hur man använder " och ', kör man ' i andra exemplet blir det inte rätt :)

EclipseMedlem sedan juli 20003 825 inlägg
#12

Ditt antagande är korrekt. :-)

Det var kanske mer Conn.Execute(SQL)- biten jag undrade över....

Man kan söka på update, insert och delete här i forumet och då får man rätt bra hjälp. Dock var ditt exempel ovan ett bra komplement till de "historiska" trådarna.

------------------
"Never underestimate your opponents." - Name the movie.

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