Hallo ik ben een beginner in de php wereld.
En als ik de while loop gebruik van mysql_fetch_array.
En ik bouw daar een if else statement achter dan laat hij alleen maar de if statement zien als dat waar is en als het niet waar is laat hij niet de else zien.
Hoe kan dit?
Als ik hetzelfde principe buiten een while loop doe zoals onder de streepjes lijn laat hij de else wel zien.

Dit is de code:

<?php
require ('config.php');
$zoekwoord = $_POST['rekeningnr'];

if($zoekwoord == ""){
echo "U heeft geen nummer ingevoerd";
}
elseif(!filter_var($zoekwoord, FILTER_VALIDATE_INT)){
echo "U mag alleen cijfers invoeren van 0-9";
}
else{
echo "Uw zoek opdracht is verwerkt";
//Zoek met de regel hieronder op 2 woorden.
//$query = "SELECT * FROM gegevens WHERE rekeningnr_db LIKE '%$zoekwoord%' or rekeningnr_db LIKE '%$zoekwoord%'";
$query = "SELECT * FROM gegevens WHERE rekeningnr_db LIKE '%$zoekwoord%'";
$result_db = mysql_query($query);
while($row = mysql_fetch_array($result_db))
if ($row['rekeningnr_db'] == $zoekwoord){
echo "<br/> Na if : ".$row['voornaam_db'];
}
else{
echo "<br/> Rekening nummer is niet gevonden.";
}
}

echo "<br/>----------------------------------------<br/>";

$row = 9999999999;
if ($row == $zoekwoord){
echo "<br/> Na if : Nummer is gevonden.";
}
else{
echo "<br/> Na else : Nummer is niet gevonden.";
}
?>
Gerhard l op 10/06/2011 21:48:15

Ja ik reken je er ook niet op af, vroeg me het gewoon af als je werkt met rekening nummers zou ik niet gaan werken met like omdat ze toch uniek zijn. Dat kun je meer gebruiken bij zoeken op namen ofzo, maar kijk maar even of je nog wat nuttigs uit mijn voorbeeld kan halen.

<?php
LIKE '%$zoekwoord%'"
?>
Zoekt toch wel gericht en identiek op een woord of getallen toch?
Niet dat ik 100 zoek en hij 1000 weergeeft omdat 100 er in voor komt.


[size=xsmall]Toevoeging op 10/06/2011 23:17:18:[/size]

- SanThe - op 10/06/2011 22:51:22

De geselecteerde waarde(n) uit de query van dat ene gevonden record zit(ten) nu in het array $row.


Oke bedankt. Valt nog niet mee hoor php. Maar goed. Als ik nog eens wat heb drop ik het wel weer. :)
Daniel Leppink op 10/06/2011 23:13:19

<?php
LIKE '%$zoekwoord%'"
?>
Zoekt toch wel gericht en identiek op een woord of getallen toch?
Niet dat ik 100 zoek en hij 1000 weergeeft omdat 100 er in voor komt.


Nee.
De %-tekens mogen bij LIKE elk willekeurig character zijn.
Stel zoekterm = 100
... veld LIKE '%zoekterm%' => geeft 11000, 1000, 1001, 2310087 etc.
... veld LIKE '%zoekterm' => geeft 1100, 23100 etc. (alleen links een %)
... veld LIKE 'zoekterm%' => geeft 1000, 1001, 10087 etc. (alleen rechts een %)
... veld = '%zoekterm%' => geeft %100% dus exact met de %-jes.
... veld = 'zoekterm' => geeft 100 exact.


- SanThe - op 11/06/2011 00:34:34

[quote="Daniel Leppink op 10/06/2011 23:13:19"]
<?php
LIKE '%$zoekwoord%'"
?>
Zoekt toch wel gericht en identiek op een woord of getallen toch?
Niet dat ik 100 zoek en hij 1000 weergeeft omdat 100 er in voor komt.


Nee.
De %-tekens mogen bij LIKE elk willekeurig character zijn.
Stel zoekterm = 100
... veld LIKE '%zoekterm%' => geeft 11000, 1000, 1001, 2310087 etc.
... veld LIKE '%zoekterm' => geeft 1100, 23100 etc. (alleen links een %)
... veld LIKE 'zoekterm%' => geeft 1000, 1001, 10087 etc. (alleen rechts een %)
... veld = '%zoekterm%' => geeft %100% dus exact met de %-jes.
... veld = 'zoekterm' => geeft 100 exact.

[/quote]
Oke dus:
% links zoekt alle getallen waar uiterst rechts een getal 100 staat.
% rechts zoekt alle getallen waar uiterst links een getal 100 staat.
en
% links en rechts zoekt alle getallen waar uiterst rechts of links een getal 100 staat of in het midden.
en zonder % zoekt hij gewoon exact 100 op.

Oke bedankt weer wat geleerd.
Als je exact zoekt gebruik je ... = '...' en geen LIKE omdat dat veel meer zoekwerk is voor de database.

Reageren