Wackamole Skrevet 18. november 2007 Del Skrevet 18. november 2007 hei, jeg har sett over denne koden mange ganger, og prøvd all slaks mulig ting for og få den til og virke... håper det er noen som ser feilen.. <?php include_once('db_connect.php'); $sql = mysql_query ("SELECT * FROM bruker INNER JOIN private_m") or die ("Error in query: $sql".mysql_error()); while($row = mysql_fetch_array($sql)) { $subejct = $row['private_m.subject']; $to = $row['private_m.to']; $brukerID = $row['bruker.brukerID']; if ($to == $brukerID) { echo "$subject"; } else { echo "Du har ingen private meldinger"; } } ?> Lenke til kommentar
Gjest Slettet+142 Skrevet 18. november 2007 Del Skrevet 18. november 2007 (endret) Kommer det noe feilmelding? Hvis ikke, er det muligens det at mysql_fetch_assoc() ikke returnerer tabell.felt, men bare felt. Derfor bør du, om do felter i de to forkjsellige tabellene er like, bruke AS, slik at mysql_fetch_assoc() returnerer alle feltene, hvis du skjønner? Endret 18. november 2007 av Slettet+142 Lenke til kommentar
Wackamole Skrevet 18. november 2007 Forfatter Del Skrevet 18. november 2007 (endret) Nei, jeg skjønner ikke helt hva du mener, hvordan skal jeg bruke AS... kan du sette opp et eksempel.. (hva betyr dette?: "om do".. Tusen takk for raskt svar!.. EDIT: Nei, det kommer ingen feilmelding.. Endret 18. november 2007 av Famen Lenke til kommentar
Gjest Slettet+142 Skrevet 18. november 2007 Del Skrevet 18. november 2007 (endret) "om do", skulle egentlig være "om to" Okey. Da prøver jeg med et eksempel <?php include_once('db_connect.php'); $sql = mysql_query ("SELECT p.subject AS private_m_subject, p.to AS private_m_to, b.brukerID AS bruker_brukerID FROM bruker b INNER JOIN private_m p") or die ("Error in query: ".mysql_error()); while($row = mysql_fetch_array($sql)) { $subejct = $row['private_m_subject']; $to = $row['private_m_to']; $brukerID = $row['bruker_brukerID']; if ($to == $brukerID) { echo "$subject"; } else { echo "Du har ingen private meldinger"; } } ?> En annen ting som kan være feil, er jo det at INNER JOIN-tingen din ikke har noen krav for at bruker-raden som velges har noe spesifik relasjon til private_m-raden.. Endret 18. november 2007 av Slettet+142 Lenke til kommentar
Wackamole Skrevet 18. november 2007 Forfatter Del Skrevet 18. november 2007 Tusen takk!!, det funket perfekt!.. Men du har helt rett, jeg har et innlogging system med sessions! men jeg aner ikke hvordan jeg skal hente ut brukerID for han som har logget seg og legge inn, slik at jeg får rett PM i innboxen.. du har ikke en fin løsning på det? Lenke til kommentar
Gjest Slettet+142 Skrevet 18. november 2007 Del Skrevet 18. november 2007 Jupp, men da må jeg vite hvilket felt i private_m.tabellen som skal tilsvare brukerID-en først Lenke til kommentar
Wackamole Skrevet 18. november 2007 Forfatter Del Skrevet 18. november 2007 jeg har en "to" som skal tilsvare "brukerID" når de to er lik, skal han hente ut alle Emnene ("subject" i innboxen. Lenke til kommentar
Gjest Slettet+142 Skrevet 18. november 2007 Del Skrevet 18. november 2007 Da vil koden bli noe som dette, hvis jeg har forstått riktig: <?php include_once('db_connect.php'); $sql = mysql_query ("SELECT p.subject AS private_m_subject, p.to AS private_m_to, b.brukerID AS bruker_brukerID FROM bruker b INNER JOIN private_m p ON b.brukerID=p.to") or die ("Error in query: ".mysql_error()); while($row = mysql_fetch_array($sql)) { $subejct = $row['private_m_subject']; $to = $row['private_m_to']; $brukerID = $row['bruker_brukerID']; if ($to == $brukerID) { echo "$subject"; } else { echo "Du har ingen private meldinger"; } } ?> Lenke til kommentar
Wackamole Skrevet 18. november 2007 Forfatter Del Skrevet 18. november 2007 Den kommer ikke ut med noe nå.. Men hvordan vet scriptet hvilken brukerID som er logget inn? Lenke til kommentar
Gjest Slettet+142 Skrevet 18. november 2007 Del Skrevet 18. november 2007 Ja du sier noe der.. Det kan være at brukeren ikke har noen meldinger i innboksen, at jeg har gjort feil(feil i kode, misforstått), eller at du har gitt meg feile opplysninger. Prøver uansett igjen under: <?php include_once('db_connect.php'); $brukerID = mysql_real_escape_string($_SESSION["brukerID"]); // Fiks denne til riktig session-variabel $sql = mysql_query ("SELECT p.subject AS private_m_subject, p.to AS private_m_to, b.brukerID AS bruker_brukerID FROM bruker b INNER JOIN private_m p ON b.brukerID=p.to WHERE b.brukerID='{$brukerID}'") or die ("Error in query: ".mysql_error()); while($row = mysql_fetch_array($sql)) { $subejct = $row['private_m_subject']; $to = $row['private_m_to']; $brukerID = $row['bruker_brukerID']; if ($to == $brukerID) { echo "$subject"; } else { echo "Du har ingen private meldinger"; } } ?> Lenke til kommentar
Wackamole Skrevet 18. november 2007 Forfatter Del Skrevet 18. november 2007 (endret) Slik ser scriptet som skjekker om brukernavn og passord finnes i databasen, og det er her jeg setter verdien i session, men jeg vet ikke helt om det er rett eller om det slik man gjør det.. Klikk for å se/fjerne innholdet nedenfor <?php // we must never forget to start the session session_start(); if (isset($_POST['usrname']) && isset($_POST['psword'])) { include_once('db_connect.php'); $usrname = $_POST['usrname']; $password = $_POST['psword']; // check if the user id and password combination exist in database $sql = "SELECT * FROM bruker WHERE brukernavn = '$usrname' AND passord = '$password'"; $result = mysql_query($sql) or die('Query failed. ' . mysql_error()); while($row = mysql_fetch_array($result)){ $userlevel = $row['userlvl']; $level = '2'; $brukerID = $row['brukerID']; if ($userlevel == $level) { $_SESSION[$brukerID] = true; header('Location: admin.php'); exit; } else { echo "You dont have the supirior level to enter this site."; } } } ?> EDIT: Har endret litt på koden, men den funker ikke enda EDITII: Nå tror jeg har funnet problemet, scriptet som skjekker om brukernavn og passord er rett, setter ikke ny session variabel, jeg har prøvd og kjøre "echo $_SESSION[brukerID];" men den skriver ikke ut noe. Og da vet jeg ikke hva problemet er, scriptet ovenfor skal da funke,.. Endret 18. november 2007 av Famen Lenke til kommentar
Wackamole Skrevet 18. november 2007 Forfatter Del Skrevet 18. november 2007 Fikk det til!! det var skrive feil som gjorde at koden ikke printet ut noe, men jeg får fremdeles ikke session til!, kanskje jeg skal bruke cookies? (aner ikke hvordan) Her er koden som nesten funker. <?php session_start(); include_once('db_connect.php'); $sql = mysql_query ("SELECT p.subject AS private_m_subject, p.to AS private_m_to, b.brukerID AS bruker_brukerID FROM bruker b INNER JOIN private_m p ON b.brukerID=p.to") or die ("Error in query: ".mysql_error()); while($row = mysql_fetch_array($sql)) { $subject = $row['private_m_subject']; $to = $row['private_m_to']; $brukerID = mysql_real_escape_string($_SESSION['brukerID']); // Fiks denne til riktig session-variabel if ($to == $brukerID) { echo "$subject"; } else { echo "Du har ingen private meldinger"; } } ?> Lenke til kommentar
Gjest Slettet+142 Skrevet 18. november 2007 Del Skrevet 18. november 2007 Du burde ikke lagre seassionvariabel med key brukerID og value true, du burde heller lagre sessionvariabel med key 'brukerID' og value brukerID Lenke til kommentar
Wackamole Skrevet 18. november 2007 Forfatter Del Skrevet 18. november 2007 TUSEN TAKK!!.. nå funket det... Tusen takk for hjelpen! ;) 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å