--------------------------------------------------------------------
opgelost - oplossing zie pagina 2 (indien zelfde probleem)
--------------------------------------------------------------------
ik zit met een probleempje in mijn script, en ik heb via google etc. nog geen passende oplossing gevonden.
In mijn database staat bijvoorbeeld een nummer dat ''vlieg met me mee'' heet.
En via een script haal ik nummers op, maar dan kan de titel bijvoorbeeld net wat anders zijn bijvoorveeld: ''vlieg met me mee #2''
Dan ziet mijn script niet dat het nummer al in de database staat, en zet het, het erop nieuw in.
Op de volgende manier kijk ik of het nummer al in de database staat.
Wat moet ik hierin veranderen zodat het script ook kleine veranderingen in de titel herkend?PHP Code:
$result = mysql_query("SELECT * FROM nummers WHERE nummer LIKE '".$opgehaalde-nummer-naam."'") or die(mysql_error());
$row = mysql_fetch_array( $result );
$nummer=$row['nummer'];
if ($nummer == "") {
echo 'Nummer stond nog niet in de database!<br />';
} else {
echo 'Nummer stond al in de database!<br />';
}
- niet gelijk aan maar...
-
08-08-2011, 14:13 #1
- Berichten
- 1.070
- Lid sinds
- 15 Jaar
niet gelijk aan maar...
Laatst aangepast door N Wilkens : 08-08-2011 om 18:22
-
-
08-08-2011, 14:21 #2
- Berichten
- 454
- Lid sinds
- 14 Jaar
Re: niet gelijk aan maar...
Je hebt nu LIKE , dat betekent enigszins erop lijkt. Je moet = nemen wil je het precies checken.
Daarnaast is het slim om de haakjes om $result bij je fetch_arry meteen neer te zetten, niet een spatie ertussen.
-
08-08-2011, 14:28 #3
- Berichten
- 1.070
- Lid sinds
- 15 Jaar
Re: niet gelijk aan maar...
Het moet het niet precies checken, want zoals ik aangaf kan het zijn dat waar ik de nummers op haal dat ze er #2 erachter hebben staan, en ik niet. En met like word het alsnog niet goed opgepakt. Hij moet dus herkennen dat het hetzelfde nummer is enkel met #2 erachter, en dat het dus bij de ''stond al in de database komt''
-
08-08-2011, 14:31 #4
- Berichten
- 1.263
- Lid sinds
- 16 Jaar
Re: niet gelijk aan maar...
Voeg wildcards toe ;-)
http://www.w3schools.com/SQL/sql_wildcards.asp
-
08-08-2011, 14:33 #5
- Berichten
- 1.070
- Lid sinds
- 15 Jaar
Re: niet gelijk aan maar...
Ik ben zelf geen expert in SQL/Mysql, en kan er niet perfect uitkomen.
-
08-08-2011, 14:42 #6
- Berichten
- 197
- Lid sinds
- 14 Jaar
Re: niet gelijk aan maar...
Zoals Robin al zegt ..
PHP Code:$result = mysql_query("SELECT * FROM nummers WHERE nummer LIKE '"%".$opgehaalde-nummer-naam."%"'") or die(mysql_error());
Laatst aangepast door Tom S. : 08-08-2011 om 14:53
-
08-08-2011, 14:47 #7
- Berichten
- 1.070
- Lid sinds
- 15 Jaar
Re: niet gelijk aan maar...
Warning: Division by zero in /home/username/domains/domain.nl/public_html/files/index2.php on line 66
-
08-08-2011, 14:58 #8
- Berichten
- 26
- Lid sinds
- 15 Jaar
-
08-08-2011, 15:05 #9
- Berichten
- 197
- Lid sinds
- 14 Jaar
Re: niet gelijk aan maar...
@ Eric
en heb je wel een mysql real escape beveiliging tegen SQL injecties?
-
08-08-2011, 15:06 #10
- Berichten
- 1.070
- Lid sinds
- 15 Jaar
Re: niet gelijk aan maar...
@Tom S.
Niet echt, maar dit word ook een pagina die enkel en alleen door mij opgeroepen gaat worden.
Wachtwoord beveiligd, via directadmin.
Dit kwam na die ene extra haakjes, en ik deel nergens iets in het script.
Dit is rond regel 66.
PHP Code:<?
foreach($array as $nummer) {
$plaats = $nummer->plaats;
$titel = $nummer->titel;
$titel2 = str_replace("'", "", $titel);
$artiest = $nummer->artiest;
$artiest2 = str_replace("'", "", $artiest);
$weken = $nummer->aw;
$result = mysql_query("SELECT * FROM nummers WHERE nummer LIKE '"%".$titel2."%"'") or die(mysql_error());
$row = mysql_fetch_array( $result );
$nummer=$row['nummer'];
if ($nummer == "") {
mysql_query("UPDATE nummers SET top40='2', plaats='0' WHERE plaats='$plaats'") or die(mysql_error());
mysql_query("INSERT INTO nummers SET nummer='".$titel2."', artiest='".$artiest2."', artiestlink='0', youtube='', top40='1', plaats='".$plaats."'");
echo 'Nummer stond nog niet in de database!<br />';
} else {
mysql_query("UPDATE nummers SET top40='2', plaats='0' WHERE plaats='$plaats'") or die(mysql_error());
mysql_query("UPDATE nummers SET top40='1', plaats='".$plaats."' WHERE nummer='$titel2'") or die(mysql_error());
echo 'Nummer stond al in de database!<br />';
} } ?>
-
08-08-2011, 15:11 #11
- Berichten
- 26
- Lid sinds
- 15 Jaar
Re: niet gelijk aan maar...
Ja, ik zie het net, hij heeft het niet juist gedaan.
-
08-08-2011, 15:17 #12
- Berichten
- 1.070
- Lid sinds
- 15 Jaar
Re: niet gelijk aan maar...
na de teveel aan haakjes verwijder te hebben werkt het maar, hij blijft het alsnog aangeven als: ''nog niet in database''
Andersom zal het wel werken als in de database stond ''vlieg met me mee #3'' en ik de naam ''vlieg met me mee'' aanroep. Maar andersom werkt het niet, wat er juist gebeurd. Daarwom werkt deze methode helaas niet. iemand enig idee hoe het dan moet?
-
08-08-2011, 15:24 #13
- Berichten
- 1.263
- Lid sinds
- 16 Jaar
Re: niet gelijk aan maar...
Doe eens in je database;
SELECT * FROM tabel WHERE titel LIKE 'vlieg met me mee%'
Ben zelf ook geen held met wildcards helaas. Wat geeft bovenstaand terug?
-
08-08-2011, 15:28 #14
- Berichten
- 1.070
- Lid sinds
- 15 Jaar
Re: niet gelijk aan maar...
Dat werkt wel gewoon maar... Ik krijg juist ''vlieg met me mee #3'' door, en in mijn database staat ''vlieg met me mee''
-
08-08-2011, 15:31 #15
- Berichten
- 454
- Lid sinds
- 14 Jaar
Re: niet gelijk aan maar...
Excuus, had het verkeerd begrepen.
Je kan bijvoorbeeld een extra veld aanmaken waar je dan #2 ingeeft, zodat hij alleen checkt op de titel. Dus dan voer je twee checks in 1 query uit: 1'tje op de titel en de 2de op het nummer.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic