url input controlleren in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 volgende »

- Ariën  -
Beheerder

- Ariën -

31/10/2014 20:10:47
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php // kleurtjes tonen
    $result = mysqli_query($link, "SELECT * FROM codes WHERE code=" . mysqli_real_escape_string($link,$codeinput) . " LIMIT 1") or die(mysqli_error());
?>
 
PHP hulp

PHP hulp

24/12/2024 21:04:45
 
Dennis  van DUin

Dennis van DUin

31/10/2014 22:03:30
Quote Anchor link
Beste,

Allereerst heel erg bedankt voor al je hulp dat waardeer ik ontzettend! Dan het volgende ik krijg nu geen enkele error meer. Maar ik krijg ook geen echo terug. Als ik mijn link nu volg dan is het gewoon leeg. Ik krijg dus niet de punten terug die achter de code staat die ik invul? Weet jij hoe ik dit als reactie terug krijg? En dan ook als de code niet voorkomt in de tabel moet hij een 0 als resultaat terug geven?


Groeten,
Dennis
 
Frank Nietbelangrijk

Frank Nietbelangrijk

31/10/2014 22:43:41
Quote Anchor link
Ik mis nog een kolom 'id' in je database. En die mag je de opties primary key en auto increment geven.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
id: integer, primary key, auto increment
code: integer,
punten: integer
Gewijzigd op 31/10/2014 22:45:57 door Frank Nietbelangrijk
 
Dennis  van DUin

Dennis van DUin

31/10/2014 22:47:26
Quote Anchor link
Heey,

Dat werkt bijna ik krijg alleen nu als resultaat het ID nummer en niet het aantal punten?

Tevens als die fout is krijg ik niks terug en dan hoopte ik juiste een 0 te krijgen.

Groeten,
Dennis
 
Frank Nietbelangrijk

Frank Nietbelangrijk

31/10/2014 22:48:00
Quote Anchor link
laat je nog eens je code zien aub?
 
Dennis  van DUin

Dennis van DUin

31/10/2014 22:52:07
Quote Anchor link
Dat ziet er op dit moment zo uit:

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
<?php

$host
= "localhost";
$username = "pelistar";
$password = "";
$database = "my_pelistar";
$codeinput = $_GET['code'];              

$link = mysqli_connect($host,$username,$password,$database) or die(mysqli_connect_error());

function
useCode($link,$codeinput)
{

    $result = mysqli_query($link, "SELECT * FROM codes WHERE code=" . mysqli_real_escape_string($link,$codeinput) . " LIMIT 1") or die(mysqli_error());
    if($result && $row = mysqli_fetch_assoc($result));
    {

        mysqli_query($link, "DELETE FROM codes WHERE id=" . $row['id']);
        return $row['id'];
    }


    return FALSE;
}


$punten = useCode($link, $codeinput);
echo $punten;

?>


De code die is geweest wordt trouwens wel goed verwijderd!
Gewijzigd op 31/10/2014 22:52:34 door Dennis van DUin
 
- Ariën  -
Beheerder

- Ariën -

31/10/2014 22:55:14
Quote Anchor link
En pas lijn 16 eens aan naar:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysqli_query($link, "DELETE FROM codes WHERE id=" . $row['id']) or die(mysqli_error());


Zet bovenaan op lijn 2 ook dit neer, zodat je alle foutmeldingens of notices ziet. Altijd handig bij het ontwikkelen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2

error_reporting(E_ALL);
Gewijzigd op 31/10/2014 22:56:42 door - Ariën -
 
Frank Nietbelangrijk

Frank Nietbelangrijk

31/10/2014 22:58:04
Quote Anchor link
ja niet zo moeilijk he?

return $row['id'];

moet worden:

return $row['punten'];
 
Dennis  van DUin

Dennis van DUin

31/10/2014 22:59:09
Quote Anchor link
Dit krijg ik nu bij een code die fout is en ik voer hem in:


Warning: mysqli_error() expects exactly 1 parameter, 0 given in /membri/pelistar/Codes/codesalien.php on line 17

EDIT:
Helemaal geweldig ik krijg nu het aantal punten terug. Hoe kan ik nu bij een fout antwoord nog een 0 terug krijgen? Waar moet ik dan return['0']; zetten ofzo? of echo '0'
Gewijzigd op 31/10/2014 23:00:29 door Dennis van DUin
 
Frank Nietbelangrijk

Frank Nietbelangrijk

31/10/2014 23:00:25
Quote Anchor link
ja zoals Aar zegt error reporting altijd aan!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
?>


Toevoeging op 31/10/2014 23:01:59:

mysqli_error($link)
 
Dennis  van DUin

Dennis van DUin

31/10/2014 23:02:22
Quote Anchor link
Dat heb ik nu gedaan ;) Dat werkt inderdaad want ik krijg bij een foute code als invoer meteen een warning te zien:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Gewijzigd op 31/10/2014 23:03:09 door Dennis van DUin
 
Frank Nietbelangrijk

Frank Nietbelangrijk

31/10/2014 23:03:12
Quote Anchor link
mysqli_error($link)
 
- Ariën  -
Beheerder

- Ariën -

31/10/2014 23:03:15
Quote Anchor link
Oeps, deja-vu. $link mist.
Gewijzigd op 31/10/2014 23:03:39 door - Ariën -
 
Dennis  van DUin

Dennis van DUin

31/10/2014 23:05:02
Quote Anchor link
ja dat heb ik gedaan zoals jullie zeiden zag het als toevoeging. maa toen kreeg ik dus een andere error bij een foute code:

http://pelistar.altervista.org/Codes/codesalien.php?code=1233

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Gewijzigd op 31/10/2014 23:07:02 door Dennis van DUin
 
- Ariën  -
Beheerder

- Ariën -

31/10/2014 23:08:04
Quote Anchor link
Als je je query's naar deze opbouw aanpast, door ze apart in een variabele ($sql) op te slaan, dan kan je deze echo'en. Dan zie je wat er nou exact uit wordt gevoerd.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$sql = "DELETE FROM codes WHERE id=" . $row['id'];
echo $sql;
mysqli_query($link, $sql);
Gewijzigd op 31/10/2014 23:08:24 door - Ariën -
 
Dennis  van DUin

Dennis van DUin

31/10/2014 23:10:33
Quote Anchor link
En dan zie ik waar die error vandaan komt?
 
- Ariën  -
Beheerder

- Ariën -

31/10/2014 23:11:09
Quote Anchor link
Ja, je ziet dan hoe je query uitgevoerd wordt.
Gewijzigd op 31/10/2014 23:11:33 door - Ariën -
 
Dennis  van DUin

Dennis van DUin

31/10/2014 23:13:11
Quote Anchor link
Ik heb ze er net ingevoerd maar hij klopt wel gewoon. Als ik een code invul die van ID 1 dan geeft jou code netjes aan dat dat id 1 is en dan geef hij weer wat er staat aan punten. Het enige moment wanneer dit optreed is als de code fout is die ik invoer en dus niet in de database staat. Nu geef hij een error als de code niet voorkomt maar dat moet een 0 zijn zodat ik aan de hand van die 0 kan controlleren dat je code fout was.
 
- Ariën  -
Beheerder

- Ariën -

31/10/2014 23:19:25
Quote Anchor link
Met mysqli_num_rows() kan je controleren of een records bestaat. Als deze 0 teruggeeft, kan je zelf een foutmelding tonen, of een 0 zoals je dat wilt.
Gewijzigd op 31/10/2014 23:19:58 door - Ariën -
 
Dennis  van DUin

Dennis van DUin

31/10/2014 23:24:15
Quote Anchor link
En hoe voeg ik dat in de code?

Ik ben gewend om te programmeren met een if en else statement? Kan dat gewoon dus dat ik neerzet

if($result && $row = mysqli_fetch_assoc($result));
{

mysqli_query($link, "DELETE FROM `codes` WHERE `id`=" . $row['id']) or die(mysqli_error($link));
return $row['punten'];

}else if mysqli_num_rows($result) = '0'
{
echo '0';
}
 

Pagina: « vorige 1 2 3 volgende »



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.