kroekkete Skrevet 27. mai 2004 Forfatter Del Skrevet 27. mai 2004 Koden ser nå slik ut, men jeg klarer ikke å få kjørt koden hvis ikke brukeren har registrert noen oppføringer tidligere. Hvis brukeren har poster i tabellen fra før av fungerer alt utmerket. Hvis derimot brukeren registrerer sin første oppføring i tabellen stopper nettleseren opp i denne filen (altså, i denne filen vi ser koden til under her, som heter overordnetsql.php, og som får dataene sine fra overordnet.php) og bare viser en hvit skjerm... <?php $brukernavn=($_SESSION ['brukernavn']); $dato =(date("Y.m.d")); include ("pobasekopling.php"); $sql = "SELECT indeks, brukerindeks, brukernavn FROM tab4 WHERE brukernavn='{$_SESSION['brukernavn']}' ORDER BY brukerindeks desc LIMIT 1"; $sql_resultat = mysql_query($sql); while ($arr=mysql_fetch_array($sql_resultat)){ if (!empty($arr['brukerindeks'])) { $bindeks= ($arr['brukerindeks']); $bindeks++; $sql2 = "INSERT INTO tab4 (innhold, overskrift, dato_opprettet, brukernavn, passord, brukerindeks) VALUES ('$innhold', '$overskrift', '$dato', '$brukernavn', '$passord', '$bindeks')"; mysql_query($sql2); header('Location: http://inter.net/overordnet.php'); } else { $bindeks = 1; $sql2 = "INSERT INTO tab4 (innhold, overskrift, dato_opprettet, brukernavn, passord, brukerindeks) VALUES ('$innhold', '$overskrift', '$dato', '$brukernavn', '$passord', '$bindeks')"; mysql_query($sql2); header('Location: http://inter.net/overordnet.php'); } } ?> Lenke til kommentar
kakkle Skrevet 27. mai 2004 Del Skrevet 27. mai 2004 (endret) Det er vel fordi hvis ikke brukeren har noe i databasen fra før, så er vel ikke brukernavnet heller i databasen ? Eller har jeg forstått det feil. Sjekk hvor mange rekker som blir returnert med $ant_rekker = mysql_num_rows($sql_resultat); Og hvis det ikke er noen treff, så legger til en ny post med brukernavn. brukerindeksen 1, og alt det andre: ... $ant_rekker = mysql_num_rows($sql_resultat); if($ant_rekker > 0) { //koden for hvis bruker har registrert noe fra før } else { // Brukeren har ikke registrert noe fra før $bindex = 1; // Legg inn brukernavn og brukerindex i tabellen $sql = "INSERT INTO tab4 (innhold, overskrift, dato_opprettet, brukernavn, passord, brukerindeks) VALUES ('$innhold', '$overskrift', '$dato', '$brukernavn', '$passord', '$bindeks')"; mysql_query($sql); } Endret 27. mai 2004 av kakkle Lenke til kommentar
kroekkete Skrevet 28. mai 2004 Forfatter Del Skrevet 28. mai 2004 Takk for hjelpen alle sammen! Sånn ble den endelige koden: (Forresten, har allerede forstått at jeg kommer til å ta opp dette temaet igjen en gang i fremtiden; hva gjør jeg den dagen alt er oppe og går, brukeren blar fra post til post, sortert på sin numeriske brukerindeks, og plutselig kommer til en post som er slettet... Hmmm ) <?php $brukernavn=($_SESSION ['brukernavn']); $dato =(date("Y.m.d")); include ("kobletilbase.php"); $sql = "SELECT indeks, brukerindeks, brukernavn FROM tab4 WHERE brukernavn='{$_SESSION['brukernavn']}' ORDER BY brukerindeks desc LIMIT 1"; $sql_resultat = mysql_query($sql); $ant_rekker = mysql_num_rows($sql_resultat); if($ant_rekker > 0){ while ($arr=mysql_fetch_array($sql_resultat)){ $bindeks= ($arr['brukerindeks']); $bindeks++; $sql2 = "INSERT INTO tab4 (innhold, overskrift, dato_opprettet, brukernavn, passord, brukerindeks) VALUES ('$innhold', '$overskrift', '$dato', '$brukernavn', '$passord', '$bindeks')"; mysql_query($sql2); header('Location: http://inter.net/overordnet.php'); } } else { $bindex = 1; $bindeks++; $sql = "INSERT INTO tab4 (innhold, overskrift, dato_opprettet, brukernavn, passord, brukerindeks) VALUES ('$innhold', '$overskrift', '$dato', '$brukernavn', '$passord', '$bindeks')"; mysql_query($sql); header('Location: http://inter.net/overordnet.php'); } echo mysql_errno($databaseforbindelse) . ": " . mysql_error($databaseforbindelse). "\n"; ?> Vet ikke om du la merke til at jeg i else-delen (altså hva som må gjøres hvis det ikke er lagt til noen oppføring tidligere), har dette: $bindex = 1; $bindeks++; Av en grunn som jeg ennå ikke forstår ble brukerindeks satt til 0 i tabellen hvis jeg ikke hadde med $bindeks++; Det synes jeg er PUSSIG! Takk igjen! Lenke til kommentar
Nervetattoo Skrevet 28. mai 2004 Del Skrevet 28. mai 2004 (endret) Det er nok ikke så pussig. $bindex = 1; $bindeks++; Et veldig godt tips er å velge et språk når du koder, ikke bland norsk og engelsk i koden din, og lag deg en egen navngivnings standard så slipper man lettere unna slike feil. Jeg foreslår jo da selvsagt engelsk som språk Edit: Om du ikke skjønte det så er det jo at $bindex ikke brukes i noen spørringer, så at denne ikke blir som ønsket er jo ikke så rart. Endret 28. mai 2004 av Findus Lenke til kommentar
kroekkete Skrevet 28. mai 2004 Forfatter Del Skrevet 28. mai 2004 Halloooo! Brukte laaang tid på å se sammenhengen mellom ditt råd om språk og mitt lille problem... Grunnen til at jeg skriver "indeks" og ikke "index" er at jeg ble fortalt at jeg skulle holde meg unna uttrykket "index" når det gjaldt MySQL, da det var en egen funksjon i MySQL. Skrivefeilen skyldes nok dog at jeg helst ville skrevet "index". For øvrig tar jeg språktipset ditt til etterretning. 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å