query chek
Beste leden.
Ik heb nu 2 query's waarmee ik gegevens haal uit de database of ze niet al bestaan.
Hoe controleer je of ze al in de database staan en als ze bestaan hij het in een echo neerprint, bestaan ze niet dan voert hij variable $iquery uit !
Ik heb nu 2 query's waarmee ik gegevens haal uit de database of ze niet al bestaan.
Code (php)
1
2
2
$ipquery = mysqli_query("SELECT ip FROM proxies ");
$hostquery = mysqli_query("SELECT host FROM proxies ");
$hostquery = mysqli_query("SELECT host FROM proxies ");
Hoe controleer je of ze al in de database staan en als ze bestaan hij het in een echo neerprint, bestaan ze niet dan voert hij variable $iquery uit !
je kunt een if statement schrijven
if(isset($ipquery)&& isset($hostquery))
{
echo"ze bestaan"
}
else
{
echo"ze bestaan niet"
}
if(isset($ipquery)&& isset($hostquery))
{
echo"ze bestaan"
}
else
{
echo"ze bestaan niet"
}
Wat nu als je alles gewoon in 1 keer in een query doet....?
(en dan natuurlijk iets invullen op de puntjes)
Krijg je hier 1 of meer records uit dan bestaat het al, krijg je geen records terug dan bestaat het nog niet.
Overigens kan het zelfs nog makkelijker als je een unieke index zet op ip, host. Probeer je dan een record in te voeren dat ip en host gelijk heeft, dan wordt de insert niet uigevoerd. Je krijgt dan wel een warning terug, maar daar hoef je dan gewoon niets mee te doen. Heb je dus ook geen check nodig.
(en dan natuurlijk iets invullen op de puntjes)
Krijg je hier 1 of meer records uit dan bestaat het al, krijg je geen records terug dan bestaat het nog niet.
Overigens kan het zelfs nog makkelijker als je een unieke index zet op ip, host. Probeer je dan een record in te voeren dat ip en host gelijk heeft, dan wordt de insert niet uigevoerd. Je krijgt dan wel een warning terug, maar daar hoef je dan gewoon niets mee te doen. Heb je dus ook geen check nodig.
Code (php)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
$mysqli = new mysqli('localhost', 'gebruikersnaam', 'wachtwoord', 'database');
if (mysqli_connect_errno()) {
printf("Er kan geen verbinding worden gemaakt");
exit();
} else {
echo "<doctype html> <html> <head> <meta charset='UTF-8' /> </head> <body>";
echo " <b> IP</b> <input type='text' name='ip' /> ";
echo " <b> HOSTNAME</b> <input type='text' name='hostname' /> ";
echo " <input type='submit' value='submit' /> ";
echo "</body> </html>";
}
$ipquery = mysqli_query("SELECT ip FROM proxies");
$hostquery = mysqli_query("SELECT host FROM proxies");
if(isset($ipquery) && isset($hostquery))
{
echo "Deze gegevens staan al in de database";
}
else
{
$iQuery = "INSERT INTO proxies (ip,hostname) VALUES (?,?)";
$stmt = $msqli->prepare($iQuery);
$stmt->bind_param('??', $_POST['ip'], $_POST['hostname']);
if(!$stmt->execute()) {
echo 'kan query niet uitvoeren' .$stmt->error;
}
$stmt->close();
}
?>
$mysqli = new mysqli('localhost', 'gebruikersnaam', 'wachtwoord', 'database');
if (mysqli_connect_errno()) {
printf("Er kan geen verbinding worden gemaakt");
exit();
} else {
echo "<doctype html> <html> <head> <meta charset='UTF-8' /> </head> <body>";
echo " <b> IP</b> <input type='text' name='ip' /> ";
echo " <b> HOSTNAME</b> <input type='text' name='hostname' /> ";
echo " <input type='submit' value='submit' /> ";
echo "</body> </html>";
}
$ipquery = mysqli_query("SELECT ip FROM proxies");
$hostquery = mysqli_query("SELECT host FROM proxies");
if(isset($ipquery) && isset($hostquery))
{
echo "Deze gegevens staan al in de database";
}
else
{
$iQuery = "INSERT INTO proxies (ip,hostname) VALUES (?,?)";
$stmt = $msqli->prepare($iQuery);
$stmt->bind_param('??', $_POST['ip'], $_POST['hostname']);
if(!$stmt->execute()) {
echo 'kan query niet uitvoeren' .$stmt->error;
}
$stmt->close();
}
?>
Kijk dit is me code nu ik moet aleen nog chekken of hij op de button drukt wie kan me opweg helpen ? Voert hij nu wel iquery uit ?
Gewijzigd op 08/06/2012 13:17:46 door dave schaafsma
Formulier maken...?
Het lukt me maar niet om dat laatste stukje werkend te maken dammit :( !
Heb je uberhaupt mijn post wel gezien?
Wat je nu doet is echt volkomen verkeerd. Je haalt alle hosts op, dan alle ip adressen en bekijkt dan of twee variabelen zijn gezet. Ik ga je zeggen die isset() functies (beide) leveren ALTIJD true op. Zelfs als er geen enkel record in de database staat en zelfs als de query fout zou gaan. Je checkt dus helemaal NIETS!
Wat je nu doet is echt volkomen verkeerd. Je haalt alle hosts op, dan alle ip adressen en bekijkt dan of twee variabelen zijn gezet. Ik ga je zeggen die isset() functies (beide) leveren ALTIJD true op. Zelfs als er geen enkel record in de database staat en zelfs als de query fout zou gaan. Je checkt dus helemaal NIETS!
Welk framework gebruik je...?
@karin dat is een heel slecht voorbeeld.
@dave kijk is naar wat Erwin zegt. als je zijn manier volgt krijg je het goed wat je nu doet is kijken of de 2 waardes er zijn. dus je zal altijd een true terugkrijgen
wat je nu doet is SELECT rij1 FROM table en SELECT rij2 FROM table en dan kijk je bestaan de 2 rijen? maar de waardes in die rijen daar kijk je helemaal niet naar
je query moet dan zoiets worden: SELECT rij1, rij2 FROM table WHERE ....=.... AND ....=.....
@dave kijk is naar wat Erwin zegt. als je zijn manier volgt krijg je het goed wat je nu doet is kijken of de 2 waardes er zijn. dus je zal altijd een true terugkrijgen
wat je nu doet is SELECT rij1 FROM table en SELECT rij2 FROM table en dan kijk je bestaan de 2 rijen? maar de waardes in die rijen daar kijk je helemaal niet naar
je query moet dan zoiets worden: SELECT rij1, rij2 FROM table WHERE ....=.... AND ....=.....




