Avatar billede delphiuser Mester
02. marts 2014 - 12:50 Der er 7 kommentarer og
1 løsning

hvad her jeg gjort galt i denne kode

hej eksperter.

jeg har en helt almidelig <select></select> hvor jeg vil hente mine linier ud med mysqli. er lige begyndt at bruge mysqli så det er helt nyt for mig og der kommer nog en del fejl som jeg ikke kan finde og derved en masse spørgsmål.

Nå men mit problem er at jeg får ikke nogen linier frem i min <select></select>.

her kommer min kode jeg bruger til at forbinde min side til databasen.

databaseMysqli.php
<?php
$host = 'localhost';
$user = 'root';
$pass = '********';
$dbname = 'cms';

$con = new MySQLi($host, $user, $pass, $dbname);
if(mysqli_connect_errno()) {
    die('Kunne ikke forbinde : ' .mysqli_connect_error());   
}
?>

så langt så godt. den virker som den skal.

så er det at jeg gerne vil have min <select></select> til at hente de poster som er i min tabel. dertil har jeg lavet en kode som ser sådan her ud.

functions.php
<select name="" style="width:350px;">
<?php
require('data/databaseMysqli.php');
if($result = $con->query("select kat_id, kat_navn from kategori")) {
    $result->execute();
    $result->bind_result($kat_id, $kat_navn);
    while($result->fetch()) {
    echo '<option value="'.$kat_id.'">'.$kat_navn.'</option>';
    }
}
?>
</select>

men der kommer desværre ikke nogen poster frem. hvad er min fejl?
Kan slet ikke se den.

På forhånd tak for hjælpen.

Delphiuser
Avatar billede arne_v Ekspert
02. marts 2014 - 14:03 #1
proev:

if($result = $con->query("select kat_id, kat_navn from kategori")) {
    $result->execute();
    $result->bind_result($kat_id, $kat_navn);
    while($result->fetch()) {
    echo '<option value="'.$kat_id.'">'.$kat_navn.'</option>';
    }
} else {
    die($con->error);
}

og se om du faar en fejl!
Avatar billede delphiuser Mester
02. marts 2014 - 14:22 #2
jeg får ikke nogen fejl...
Avatar billede delphiuser Mester
02. marts 2014 - 14:25 #3
tilføjelse til #2

Men der kommer stadigvæk ikke noget i min <select></select>. den er bare helt tom.
02. marts 2014 - 16:21 #4
Jamen giver din query et resultat?  Hvis du går direkte ind i mysqli, for eksempel i phpmyadmin, og udfører queryen 'select kat_id, kat_navn from kategori' får du så det forventede resutat?
Avatar billede delphiuser Mester
02. marts 2014 - 19:04 #5
ja det gør jeg...

Men har fundet ud af det nu. jeg har lagt mit database opkald ind i min index fil. Så nu virker det fint. den vil bare ikke give mig lov til at køre det fra en included eller en required fil ved ikke hvorfor.

Nu har jeg bare et problem med min script til at sætte ind...

<?php
        if(isset($_POST['opret'])){
           
            if($per = $con->prepare("insert into kontakter(kontakt_navn, kontakt_adresse, kontakt_post, kontakt_by, kontakt_mobil, kontakt_mail, kontakt_kat) values(?,?,?,?,?,?,?)")) {
                $per->bind_params('ssssssi', $_POST['navn'], $_POST['adresse'], $_POST['post'], $_POST['city'], $_POST['mobil'], $_POST['email'], $_POST['kat']);
                $per->execute();
                $per->close;
                echo '<tr><td colspan="3">Kontakt person er gemt...</td></tr>';
            } else {
                echo '<tr><td colspan="3">Data ikke gemt' .$con->error(). '</td></tr>';
            }
            die($con->error());
        }
        ?>

Fejl meddelelse...

Fatal error: Call to undefined method mysqli_stmt::bind_params() in C:\xampp\htdocs\netbeans-1\index.php on line 95

som sagt mysqli er helt nyt for mig. kan i finde fejlen her?
Avatar billede delphiuser Mester
02. marts 2014 - 20:33 #6
har fundet løsningen på det andet selv. nu er jeg så groet fast i en anden ting. jeg vil gerne hente noget fra en tabel. også skal jeg bruge et id nummer fra den ene tabel til at finde noget i den anden tabel. så det id nummer bliver skiftet ud med navnet på den gruppe den tilhøre. jeg har lavet følgende kode.

<?php
            $sql = "select kontakt_id, kontakt_navn, kontakt_mobil, kontakt_mail, kontakt_kat from kontakter order by kontakt_navn";
            $sql1 = "select cat from cat where cat_id=".$kontakt_kat."";
            if($stmt = $con->prepare($sql)) {
                $stmt->execute();
                $stmt->bind_result($kontakt_id, $kontakt_navn, $kontakt_mobil, $kontakt_email, $kontakt_kat);
                if($stmt = $con->prepare($sql1)) {
                    $stmt->execute();
                    $stmt->bind_result($cat);
                    while($stmt->fetch()) {
                        echo '<tr>
                              <td>'.$kontakt_navn.'</td>
                              <td>'.$kontakt_mobil.'</td>
                              <td>'.$kontakt_email.'</td>
                              <td>'.$cat.'</td>
                              <td>'.$kontakt_id.'</td>
                              <td>'.$kontakt_id.'</td>
                          </tr>';
                    }
                }
            }
            ?>

Jeg får følgende fejlmeddelelse...

Notice: Undefined variable: kontakt_kat in C:\xampp\htdocs\netbeans-1\index.php on line 132

hvad har jeg gjort forkert her.
02. marts 2014 - 21:09 #7
delphiuser, ved du hvad - du stillede et spørgsmål med et problem der nu er blevet løst.  Så luk spørgsmålet igen (med points til dig selv).  Har du så et nyt problem, så opret et nyt spørgsmål.  Det vil så blive set af alle, ikke kun dem der har deltaget i dette spørgsmål.  (Hvis du opretter et nyt spørgsmål med indholdet af #6, så foreslår jeg at du fortæller hvilken linje af koden der er 'line 132'.
Avatar billede delphiuser Mester
02. marts 2014 - 21:51 #8
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester