Van mysql naar mysqli

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mathieu Posthumus

Mathieu Posthumus

12/09/2014 19:38:38
Quote Anchor link
Heey mensen,

ik heb in een tutorial gezien(Youtube) hoe je een de gegevens uit velden kan selecteren. nou kan ik dat wel in mysql.
maar nog niet in mysqli. het gaat voornamelijk over dit stukje...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
return mysql_result(mysql_query("SELECT `user_id` FROM `users` WHERE `username` = '$username'"), 0, 'user_id');
return mysqli_fetch_assoc(mysqli_query($con, "SELECT `user_id` FROM `users` WHERE `username` = '$username'"));
?>


maar wat is er fout aan de mysqli_... code?
 
PHP hulp

PHP hulp

01/10/2022 12:30:17
 
- Ariën  -
Beheerder

- Ariën -

12/09/2014 19:50:42
Quote Anchor link
- Waarom gebruik je backticks (`)
- Waarom sla je niet je query op in een variabele. Dan kan je makkelijk foutafhandeling toevoegen.

Verder is mysqli_result() totaal wat anders dan mysql_result(), dus je zult mysqli_fetch_field moeten gebruiken.
 
Mathieu Posthumus

Mathieu Posthumus

12/09/2014 19:53:52
Quote Anchor link
mysqli_fetch_assoc is toch ook goed? of moet je dat echt alleen maar met een boolean gebruiken?
en backticks gebruik ik omdat het me een keer is verteld dat het handiger is.(Mijn leraal heeft me dat verteld)
en ik wil gewoon weten hoe ik via mysqli_* het veld user_id kan selecteren zoals het staat met mysql_*
 
- Ariën  -
Beheerder

- Ariën -

12/09/2014 19:55:22
Quote Anchor link
Met mysqli_fetch_assoc() moet het ook kunnen, deze haalt wel de hele rij op.
 
Mathieu Posthumus

Mathieu Posthumus

12/09/2014 19:56:12
Quote Anchor link
en met rij bedoel je alle records die in user_id staan of alles velden die in de tabel staan?
 
- Ariën  -
Beheerder

- Ariën -

12/09/2014 19:57:48
Quote Anchor link
Standaard haalt hij een enkele rij op. Tenzij je hem in een while verwerkt. Dan haal je alles uit de hele tabel op, wat voldoet aan de query.
 
Mathieu Posthumus

Mathieu Posthumus

12/09/2014 19:58:49
Quote Anchor link
oke maar op de manier zoals ik het nou heb geschreven de mysqli_* query dan hoort het toch te werken?
 
- Ariën  -
Beheerder

- Ariën -

12/09/2014 20:02:37
Quote Anchor link
Ja, maar de query mag je ook even los in een variabele opslaan. Zo blijft het beter leesbaarder, en kan je goede foutafhandeling toevoegen.
 
Mathieu Posthumus

Mathieu Posthumus

12/09/2014 20:12:46
Quote Anchor link
het rare is hij laat gewoon geen errors zien
 
- Ariën  -
Beheerder

- Ariën -

12/09/2014 20:20:56
Quote Anchor link
Ik neem aan dat je wel wat echoéd.
 
Mathieu Posthumus

Mathieu Posthumus

12/09/2014 20:22:47
Quote Anchor link
ik gebruik return
 
- Ariën  -
Beheerder

- Ariën -

12/09/2014 20:29:44
Quote Anchor link
Kan je wat meer relevante code laten zien?
 
Mathieu Posthumus

Mathieu Posthumus

12/09/2014 20:35:15
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
function user_id_from_username($username) {
    global $con;
    $username = sanitize($username);
    
    $query = mysqli_fetch_assoc(mysqli_query($con, "SELECT `user_id` FROM `users` WHERE `username` = '$username'"));
    return $query;
}


//Dit is een scheiding omdat het een andere pagina is.
//----------------------------------------------------------------------------------------------



if (isset($_POST['login'])) {

    $username = $_POST['username'];
    $password = $_POST['password'];

    if (empty($username) || empty($password)) {
        $error[] = 'Fill in all fields.';
    }
else {
        if (user_exist($username) == false) {
            $error[] = 'This username doesn\'t exist, please register first.';
        }
if (user_active($username) == false) {
            echo 'This user is not activated, please check your email, there is an email send to your inbox.';
        }
else {
            if (empty($error) == false) {
                echo error_handeling($error);
            }
else {
                echo 'goedzo';
                user_id_from_username($username);
            }
        }
    }
}
else {
    header("Location: index.php");
}
[
/code]
 
- Ariën  -
Beheerder

- Ariën -

12/09/2014 20:45:37
Quote Anchor link
Kijk eens met var_dump naar wat $query terugstuurt in je functie. ;-)
 
Mathieu Posthumus

Mathieu Posthumus

12/09/2014 20:48:21
Quote Anchor link
oke nu geeft ie array(1) { ["user_id"]=> string(1) "1" } aan. maar waarom geeft ie het zonder dat niet aan?
 
- SanThe -

- SanThe -

12/09/2014 20:52:20
Quote Anchor link
Je doet niks met de returnwaarde.
 
Mathieu Posthumus

Mathieu Posthumus

12/09/2014 20:53:50
Quote Anchor link
hoe bedoel je ik doe er niks mee? moet ik bij dit stukje

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
} else {
     echo 'goedzo';
     user_id_from_username($username);
}

?>


nog een 'echo' voor 'user_id_from_username($username); zetten?

Toevoeging op 12/09/2014 21:00:35:

ik heb nu $query ge-return-ed en user_id_username($username); ge-echo-ed

Toevoeging op 12/09/2014 21:00:54:

en dan geeft ie dit aan.

Array ( [user_id] => 1 )
 
- Ariën  -
Beheerder

- Ariën -

12/09/2014 21:03:17
Quote Anchor link
return $query['user_id'];
 
Mathieu Posthumus

Mathieu Posthumus

12/09/2014 21:04:29
Quote Anchor link
yes super veel bedankt het werkt
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.