Gå til innhold

PHP IF trøbbel. IF == 0 nekter å lystre


Anbefalte innlegg

Hello

 

Håper det er noen snille sjeler her som kan hjelpe meg, er lenge siden jeg har kodet men tenkte jeg skulle prøve litt igjen. Lurer derfor på hvorfor denne koden ikke fungere:

 

$s = mysql_query("SELECT av FROM status where ID = 1");

 

if ($s == "0") {

die ("test!");

return;

}

else { print "test1";

}

 

Først henter jeg ut felt "av" fra databasen. Så hvis av = 0 så skal den skrive test! hvis ikke skal den skrive test1!

 

Men jeg får bare enten kun test1! eller test! som reslutat om jeg endrer på formelen.

 

Noen som kan hjelpe?

Endret av Mortenre
Lenke til kommentar
Videoannonse
Annonse

En side jeg helt hadde glemt, takk skal du ha!

 

Ikke att det gjorde meg så mye smartere idag.

 

Det jeg egentlig prøver på er følgende:

 

Om av =1 så skal content være tilgjengelig.

om av =0 så skal content være stengt.

 

Noen gode råd om hvordan jeg kan gjøre dette?

Lenke til kommentar

*sukk*

For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.

Altså, det du får ut er ikke en rad/array, en string e.l., men en «resource». Hvis man som sagt leser noen linjer lengre ned i dokumentasjonen så finner man dette:

The returned result resource should be passed to mysql_fetch_array(), and other functions for dealing with result tables, to access the returned data.
Altså må man bruke mysql_fetch_array e.l. for å få ut en eller flere rader.
Lenke til kommentar

Nå er det jammen lenge siden jeg har i det hele tatt sett på MySQL-funksjonene i PHP (Bruker rammeverk; so should you), men det går vel noe i denne dur.

 

$resource = mysql_query('SELECT av FROM status where ID = 1');
$row = mysql_fetch_assoc($resource);

echo $row['av'];

Som Ernie sier, så returnere mysql_query() et resultatsett, hvor du kan hente ut en rad med enten mysql_fetch_assoc eller mysql_fetch_row. Skal du hente ut flere bruker du mysql_fetch_array.

 

Edit: Slått på målstreken..

Endret av Jonas
Lenke til kommentar
En nybegynner bør da ikke på ingen måte anbefales rammeverk om han har som mål å lære seg språket ordentlig.

 

Jo, fordi han bør bruke et rammeverk skal han bruke språket ordentlig...

Det er snakk om å programmere enkelt, effektivt, sikkert og raskt.

Ikke kunne hver krinkel og krok av PHP.

 

Med et rammeverk kan du få opp en side med db tilgang mye raskere enn med "vanilla PHP". Det vil hjelpe deg med å validere data fra sluttbrukeren. Det vil ofte også hjelpe deg med å bedre din kodestil. Og ofte vil det være bedre hvis du vil lære OOP.

Lenke til kommentar
En nybegynner bør da ikke på ingen måte anbefales rammeverk om han har som mål å lære seg språket ordentlig.

 

Jo, fordi han bør bruke et rammeverk skal han bruke språket ordentlig...

Det er snakk om å programmere enkelt, effektivt, sikkert og raskt.

Ikke kunne hver krinkel og krok av PHP.

 

Med et rammeverk kan du få opp en side med db tilgang mye raskere enn med "vanilla PHP". Det vil hjelpe deg med å validere data fra sluttbrukeren. Det vil ofte også hjelpe deg med å bedre din kodestil. Og ofte vil det være bedre hvis du vil lære OOP.

Jeg er litt uenig i denne filosofien. Hvis man begynner å bruke et rammeverk tror jeg det vil ta lengre tid å forstå språket, siden man kun bruker ferdige metoder for å gjøre bestemte ting, uten å vite hva som ligger bak. Det er kanskje mer tungvint i starten, men ingen nybegynnere skriver effektiv og god kode uansett, selv om man bruker et rammeverk. Hvis man starter på scratch uten et rammeverk tror jeg man får en bedre forståelse av hva de forskjellige funksjonene i PHP gjør, hvordan PHP behandler spørringer til en database, etc. Når man forstår språkets oppbygning, så kan man begynne å bruke rammeverk for å gjøre utviklingsjobben enklere og mer effektiv.

Lenke til kommentar

Må si meg enig med Lokaltog her, rammeverk er heller noe man burde begynne på når man har fått litt innsikt i språket. Da vil det være lettere å lære seg, lettere å fikse eventuelle feil som oppstår fordi du forstår måten det hele fungerer på, og du vil ha en bedre forutsetning for å legge til nye funksjoner dersom du skulle trenge det.

 

Kan forøvrig anbefale å skrive sitt eget rammeverk dersom man er ute etter å lære ( man må selvfølgelig kunne noe PHP fra før ). Det blir kanskje ikke like veldesignet som mange av ferdigproduktene, men du lærer enormt mye, får et system som passer nøyaktig til ditt formål og vet nøyaktig hvordan det fungerer slik at både debugging og programmering går greiere...

Lenke til kommentar

Dersom man ikke skal bruke ORM, så burde man i det minste bruke PDO. Man kan argumentere for at PDO i seg selv er et mini-rammeverk, men på en annen side så er det ikke noen "nitti-gritty-details" som ligger under PDO som man burde kunne.

 

Det viktigste for å lære er uansett bare å kode, og kode masse. Ikke bare skriv av, og ikke bare kopier inn fra andre, men prøv å skriv ditt eget. (NB: ikke mafiaspill)

 

En gjestebok eller et minispill type hangman osv. er greie øvelser i starten.

Lenke til kommentar
Ehm, fordi du har en hel del flere muligheter.

- Like metoder for alle databasesystemer.

- Prepared statements

- Det er en klasse / OOP

- Enkelt å utvide

- Transactions

- Bra kodestil, i motsetning til MySQLi.

- Den kan kaste exceptions.

Pluss en hel del andre fiffigheter.

transaksjoner har du også i mysql funksjonene.

 

var nytt for meg "PHP Data Objects"-kjekt å vite om i fremtiden. ser ut som det er mye forbedringer her.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...