JV Skrevet 21. desember 2004 Del Skrevet 21. desember 2004 (endret) Hei Jeg skal registrere noe i en MySQLdatabase. Jeg har gjort dette flere ganger før men da har jeg brukt en egen *.phpside for å registrere dette. Tenkte jeg ville prøve å få til dette på en enkelt side denne gangen. (bare noe småtteri jeg skal gjøre på jobb). Kunne vært greit å finne ut at vette til senere også. Anyways.. her er problemet: if($addit==1) { mysql_connect(localhost,$dbuser,$dbpassword); mysql_select_db(NOS_DB) or die ("Fikk ikke valgt database. Vennligst meld problemet til John Viggo</a>"); $query="INSERT INTO problempcer VALUES('','$search_code','$modell','$avdeling','$lokasjon','$etasje','$romnummer','$problemet')"; mysql_query($query); mysql_close(); } er denne jeg sliter med. Om jeg har med den ifgreia kommer siden bare opp blank, om jeg fjerner den vises siden ok (men da fungerer den da altså ikke som jeg vil). "If" i mitt tilfelle skal sjekke om $addit er lik 1 og hvis den er det skal diverse data settes inn i databasen. $addit blir 1 når jeg trykker på "Ok"knappen etter at jeg har skrevet inn det jeg skal. Hva gjøre jeg galt her.. er det en bedre måte jeg burde gjort det på? Håper dere forstår spørsmålet mitt.. ble veldig rotete dette Her er hele konden: <html> <head> <title>Spesielle Pc'er</title> </head> <?PHP $search_code=$_POST['search_code']; $modell=$_POST['modell']; $avdeling=$_POST['avdeling']; $lokasjon=$_POST['lokasjon']; $etasje=$_POST['lokasjon']; $romnummer=$_POST['romnummer']; $problemet=$_POST['problemet']; $addit=$_GET['addit']; if(!$addit) { $addit=0; } if($addit==1) { mysql_connect(localhost,$dbuser,$dbpassword); mysql_select_db(NOS_DB) or die ("Fikk ikke valgt database. Vennligst meld problemet til <a href="mailto:[email protected]">John Viggo</a>"); $query="INSERT INTO problempcer VALUES('','$search_code','$modell','$avdeling','$lokasjon','$etasje','$romnummer','$problemet')"; mysql_query($query); mysql_close(); } <body> <table width="90%" border="1" cellpadding="0" cellspacing="1"> <tr> <td>Search Code:</td> <td>Modell:</td> <td>Avdeling:</td> <td>Lokasjon:</td> <td>Etasje:</td> <td>Romnummer:</td> <td>Problemet:</td> </tr> <tr> <td valign="top"><form method="post" action="index.php?addit=1"><input type="text" name="search_code" maxlength="10" STYLE="width: 100%"></td> <td valign="top"><input type="text" name="modell" maxlength="20" STYLE="width: 100%"></td> <td valign="top"><input type="text" name="avdeling" maxlength="30" STYLE="width: 100%"></td> <td valign="top"><input type="text" name="lokasjon" maxlength="30" STYLE="width: 100%"></td> <td valign="top"><input type="text" name="etasje" maxlength="10" STYLE="width: 100%"></td> <td valign="top"><input type="text" name="romnummer" maxlength="30" STYLE="width: 100%"></td> <td valign="top"><textarea name="problemet" cols="30" rows="1"></textarea><input type="submit" name="Ok" value="Ok"></td> </tr> <?PHP mysql_connect(localhost,$dbuser,$dbpassword); mysql_select_db(NOS_DB) or die ("Fikk ikke valgt database. Vennligst meld problemet til John Viggo"); $query="select * from problempcer"; $result=mysql_query($query); $num=mysql_numrows($result); $i=0; while($i < $num) { $search_code=mysql_result($result,$i,"search_code"); $modell=mysql_result($result,$i,"modell"); $avdeling=mysql_result($result,$i,"avdeling"); $lokasjon=mysql_result($result,$i,"lokasjon"); $etasje=mysql_result($result,$i,"etasje"); $romnummer=mysql_result($result,$i,"romnummer"); $problemet=mysql_result($result,$i,"problem"); echo "<tr>"; echo "<td>$search_code</td>"; echo "<td>$modell</td>"; echo "<td>$avdeling</td>"; echo "<td>$lokasjon</td>"; echo "<td>$etasje</td>"; echo "<td>$romnummer</td>"; echo "<td>$problemet</td>"; echo "</tr>"; $i++; } mysql_close(); ?> </table> </body> </html> ueland says: #3: Unødvendig quoting samt dårlig bruk av emnefeltet blir sett på som upassende, og kan bli sensurert eller endret av moderatorer. Oops... Skal skjerpe meg på neste post Endret 22. desember 2004 av JV Lenke til kommentar
kakkle Skrevet 21. desember 2004 Del Skrevet 21. desember 2004 (endret) Fra php.net: Description bool mysql_select_db ( string database_name [, resource link_identifier]) Så du må altså ha en streng som har databasenavnet: mysql_select_db("NOS_DB") or die ("Fikk ikke valgt database. Vennligst meld problemet til John Viggo</a>"); ellers så kan det være greit å legge til mysql_error() i die'en din, kanskje, og også etter mysql_query: mysql_query($query) or die("$query<br>".mysql_error()); f.eks. Endret 21. desember 2004 av kakkle Lenke til kommentar
JV Skrevet 21. desember 2004 Forfatter Del Skrevet 21. desember 2004 Takk for svaret! mysql_select_db(NOS_DB) skal fungere fint den.. har gjort det en del ganger før... la til mysql_error() som du viste meg, men ingen feil dukker opp heller Lenke til kommentar
kakkle Skrevet 21. desember 2004 Del Skrevet 21. desember 2004 mysql_select_db(NOS_DB) or die ("Fikk ikke valgt database. Vennligst meld problemet til <a href="mailto:[email protected]">John Viggo</a>"); Se på bruken din av " her. Du kan ikke bruke " i a href =. "....". Bruk enkelfnutt istedet, eller escape den med \" Strengen i det tilfellet ditt blir jo bare : "Fikk ikke valgt database. Vennligst meld problemet til <a href=" Lenke til kommentar
LoS Skrevet 21. desember 2004 Del Skrevet 21. desember 2004 Kjekk sak: if($addit == 1) er ikke helt lik: if($addit == "1") Skal funke bedre med den nederste. Lenke til kommentar
dabear Skrevet 21. desember 2004 Del Skrevet 21. desember 2004 Kjekk sak: if($addit == 1) er ikke helt lik: if($addit == "1") Skal funke bedre med den nederste. Lær deg php ordentlig før du kommer med uttalelser. Hvis noen av de to kodeeksempla du kom med skulle brukes, ville den øverste være rett. Dessuten kan $addit == "1" skrives som $addit == '1' hvis du skulle gjort det kjappere. Men altså $addit == 1 er rett Lenke til kommentar
LoS Skrevet 21. desember 2004 Del Skrevet 21. desember 2004 (endret) Vel, jeg bare baserer det på egne erfaringer jeg selv har erfart når jeg har bæsja på leggen av samme årsak, så ikke kom her og si at jeg må lære meg php når jeg selv har opplevd det som ett problem. edit: 1 = int && true '1' = string "1" = string Endret 21. desember 2004 av LoS Lenke til kommentar
???????? Skrevet 21. desember 2004 Del Skrevet 21. desember 2004 Hvis det er snakk om å sjekke hvis en variabel er true eller ikke så er det ikke noe poeng å bruke 1, da brukes true og false. Dersom det av en eller annen grunn er fordelaktig å bruke 1 i et bestemt script så er det lurt å slå opp (bool) for å sikre at variabelen oppfører seg riktig. Dersom det der i mot er tallet som skal sjekkes så er det et par ting å vurdere. Alt som sendes fra et skjema blir strings, og i de situasjonene må det passes på at koden skrives korrekt. Ellers er det viktig hvilken måte variabelen blir lagret på, med eller uten ". All den tid det kun er snakk om å vurdere hvis en variabel er lik 1 (en) så skal det sjekkes med == 1, eventuelt === 1 - og koden må skrives korrekt tidligere i forhold til det. Ved store spørringer så er det STOR forskjell på: WHERE felt = '1' og WHERE felt = 1 For dersom det er et tall felt (int) så må MySQL konvertere tallet for alle feltene det sjekkes mot, eller motsatt dersom det er et tekst felt og man sjekker = 1. Lenke til kommentar
JV Skrevet 22. desember 2004 Forfatter Del Skrevet 22. desember 2004 (endret) Takk for svarene, men jeg får det fremdeles ikke til å fungere. Har gått over "ene og fixet de med \ (visste egentlig det fra før, men er bare for lenge siden jeg prøvde det sist). Utrolig irriterende at jeg ikke kan får en feilmelding en gang.. det hadde hjulpet... helt blank side er det eneste Jeg har også endret litt på $addit=="1" på forskjellige måter (med og uten " og med og uten tall)... Endret 22. desember 2004 av JV Lenke til kommentar
JV Skrevet 22. desember 2004 Forfatter Del Skrevet 22. desember 2004 Funker nå gitt... jeg som rota litt, men det var nok denne som rotet det til: CODE mysql_select_db(NOS_DB) or die ("Fikk ikke valgt database. Vennligst meld problemet til <a href="mailto:[email protected]">John Viggo</a>"); Se på bruken din av " her. Du kan ikke bruke " i a href =. "....". Bruk enkelfnutt istedet, eller escape den med \" Strengen i det tilfellet ditt blir jo bare : "Fikk ikke valgt database. Vennligst meld problemet til <a href=" Tusen takk for all hjelp Lenke til kommentar
aschj Skrevet 22. desember 2004 Del Skrevet 22. desember 2004 Legger merke til at du mangler en ?> over <body>, men siden problemet er løst har du sikkert ordna det allerede. Lenke til kommentar
Torbjørn Skrevet 22. desember 2004 Del Skrevet 22. desember 2004 Vel, jeg bare baserer det på egne erfaringer jeg selv har erfart når jeg har bæsja på leggen av samme årsak, så ikke kom her og si at jeg må lære meg php når jeg selv har opplevd det som ett problem. Hvis du ikke kjenner til hvordan typer caste's ved evaluering så bør du vel være forsiktig med løse påstander som "dette skal funke bedre"? litt snacks: 1 == "1"; # TRUE 1 == " 1"; # TRUE 1 == "0001"; #TRUE "1" == "001"; # TRUE '01' == " 1"; # TRUE "01 " == 1; #TRUE, men: "01" == "1 "; # FALSE Lenke til kommentar
LoS Skrevet 22. desember 2004 Del Skrevet 22. desember 2004 (endret) Altså, jeg har ikke gått noe spesielt med kurs innen php, så det meste er selvlært. Når jeg da, av en eller annen merkelig grunn som jeg ikke forstod helt selv, løser ett av mine egne problemer ved å bruke den løsningen jeg skrev ovenfor så tenker jeg at det kan jo selvfølgelig skje andre og. I tillegg mener jeg ikke: "gjør det sånn!", jeg sier mer; "du kan jo prøve å gjøre det sånn". Det er selvfølgelig mulig at dere ikke har vært borti samme greia før, noe det ikke virker som. Jeg har gjort på akkurat samme måte i ett eget script jeg har skrevet, og der ble det feil når jeg brukte 1 og ikke "1". Endret 22. desember 2004 av LoS Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå