Gebruik je een wildcard in die variabelen? Zo niet dan is dat waarschijnlijk het punt en kan je net zo goed = gebruiken.
Link gekopieerd
In een stap eerder zijn uit een lijst met cafes plaatsen geimporteerd.
Nu komen uit een lijst met hotels ook weer plaatsen die geinsert moeten worden.
Echter als de plaats al bestaat moet hij hem overslaan.
Replace / overwrite is geen optie omdat de bestaande plaatsid's moeten blijven bestaan ivm subverwijzingen.
Hier is wat meer code:
<?
$links_qry=
"SELECT
distinct plaatstitel,bundesland
FROM
hotels
";
$exec_links = mysql_query($links_qry) or die ('Ojee, foutieve query das lullig!: '.mysql_error());
while($veld = mysql_fetch_assoc($exec_links)){
$plaats = $veld["plaatstitel"];
$plaatsje = ereg_replace(' ', '-', $veld['plaatstitel']);
$plaatsje = strtolower($plaatsje);
$plaatsje = ereg_replace ("ä", "ae", $plaatsje);
$plaatsje = ereg_replace ("ö", "oe", $plaatsje);
$plaatsje = ereg_replace ("ü", "ue", $plaatsje);
$plaatsje = ereg_replace ("ß", "ss", $plaatsje);
$plaatsje = ereg_replace ("Ä", "Ae", $plaatsje);
$plaatsje = ereg_replace ("Ö", "Oe", $plaatsje);
$plaatsje = ereg_replace ("Ü", "Ue", $plaatsje);
$bundesland = $veld["bundesland"];
$bundeslink = ereg_replace(' ', '-', $veld['bundesland']);
$bundeslink = ereg_replace ("ä", "ae", $bundeslink);
$bundeslink = ereg_replace ("ö", "oe", $bundeslink);
$bundeslink = ereg_replace ("ü", "ue", $bundeslink);
$bundeslink = ereg_replace ("ß", "ss", $bundeslink);
$bundeslink = ereg_replace ("Ä", "Ae", $bundeslink);
$bundeslink = ereg_replace ("Ö", "Oe", $bundeslink);
$bundeslink = ereg_replace ("Ü", "Ue", $bundeslink);
$bundeslink = strtolower($bundeslink);
$bundesselect = 'Vakantie in regio '.$bundesland;
$plaatsdubbel = 'Vakantie in '.$plaats;
// stap 2. verbinden met tabel met posts voor ophalen postid >> postid nodig voor de insert van links in nieuwe tabel links stap 3.
$select_catid =
"SELECT
*
FROM
posts
WHERE post_title LIKE '".$bundesselect."'
AND post_title NOT LIKE '".$plaatsdubbel."'
";
$exec_catid = mysql_query($select_catid) or die ('Ojee, foutieve query!: '.mysql_error());
while ($veldje = mysql_fetch_assoc($exec_catid)) {
$catid = $veldje["ID"];
?>
Link gekopieerd
Geef eens een voorbeeld van welke dubbele namen hij dan overslaat en wat de waarde is van de $plaatsdubbel in die specifieke query.
Link gekopieerd
Bijvoorbeeld de plaatnaam Bremen bestaat al in de tabel met posts de post_title hiervan is: Vakantie in Bremen
In de 2e query probeer ik dus door de variabele $plaatsdubbel te gebruiken te voorkomen dat posts met dezelfde titel nogmaals geplaatst worden.
Link gekopieerd
Link gekopieerd
Mag ik die % ook gebruiken rondom een variabele, of werkt die alleen op tekst ?
op mysql.com heb ik de hele middag al geneust en geexperimenteerd. Kijk zo nog even naar jouw artikel.
[size=xsmall]Toevoeging op 16/01/2012 19:29:28: [/size]
Dus kan dit ??
<?
AND post_title NOT LIKE '".%$plaatsdubbel%."'
?>
Link gekopieerd
Nee, je moet die % gewoon als een string zien. Je kan dus wel zo doen:
<?
"AND post_title NOT LIKE '%".$plaatsdubbel."%'";
?>
of:
<?php
$plaatsdubbel = "%".$plaatsdubbel."%";
?>
Link gekopieerd
De ereg zal onderhand toch wel over z'n nekkie gaan, herschrijven naar preg_ of kies een ander string fucntie die dit ook kan doen.
Link gekopieerd
Dat gaat nog wel, maar voor beginners is het makkelijk te werken met wat je kent.
Heb vandaag al uren doorgebracht op msql forum en allerlei zaken in dit probleem geprobeerd.
Ook dit werkt nu nog niet.
Stop maar even voor vandaag en ga morgen verder.
Gelukkig ben ik wel eigenwijs en ga door tot iets werkt, desnoods via omwegen en in stappen.
Link gekopieerd