Geachte PHP guru's,

Ik heb een vraag over een script wat niet wil lukken, thans het werkt wel
maar zodra ik de MySQL update ga doen gaat het fout.

Doel: Titel uit een kolom halen en omzetten (slug maken) om vervolgens in een andere kolom te zetten.

Wat gaat er goed?
Als ik echo gebruik zonder mysql-update zie ik dat de functie alle data goed oppikt en omzet door de slug functie -> supers.

Wat gaat er fout?
Zodra ik de mysql-update ga gebruiken, dus om de output terug te zetten in de nieuwe kolom gaat hij een loop maken en rare slugs bij de verkeerde rows zetten.
Lijkt wel of hij dan alle rows een keer gaat gebruiken voor de slug en hij zet het niet 1 op 1 over op de juiste row.

Ik hoor graag wat er fout gaat, btw ben geen prof coder, dus de code zal wel belabberd zijn in jullie ogen :) Het is maar een script om 1 malig te draaien op de database.

Alvast bedankt!
Mike


<?php
include 'include/config.php';
$query="SELECT ItemTitle FROM feedItems";
$result=mysql_query($query);
$num=mysql_num_rows($result);
$i=0;
while($i<$num)
{
	$slug_old = mysql_result($result,$i,"ItemTitle");
	$slug_old = strtolower($slug_old);
	$slug_old = preg_replace("/[^a-z0-9_\s-]/", "", $slug_old);
	$slug_old = preg_replace("/[\s-]+/", " ", $slug_old);
	$slug_old = preg_replace("/[\s_]/", "-", $slug_old);
	
	echo "$slug_old <br>";
	
	$query="UPDATE feedItems SET slug='$slug_old'";
	mysql_query($query);
	++$i;
}
echo "Done!";
mysql_close();
?>
Jouw UPDATE doet als het goed is alle records.
Wil je dat niet, geef dan een WHERE mee.
Hoi SanThe,

Ja hij doet inderdaad alle records maar het zijn er 5000 en hij gaat elk stuk van de 5000 een keer plaatsen op de 5000 als je begrijpt wat ik bedoel, hij zet ze dus niet 1 op 1 neer dus de slug die bij de titel hoort.

Je geeft aan met where, maar wat zou dat dan moeten zijn? want ik wil dat hij de gehele database doorloopt en niet 1 stuk, een ID oid.. En ik weet ook niet (thans zoveel) hoe de titels heten dus daar kan ik hem ook niet op laten filteren.. Als ik wist dat het enkel ID 1 moest zijn was het inderdaad een makkie (gok ik) maar ik wil ze allemaal, zoals ik al zei ben geen php guru.

Ik hoor graag van je..
Mike
<?php
include 'include/config.php';
$query = "SELECT Id, ItemTitle FROM feedItems";
$result = mysql_query($query);
if($result)
{
while($row = mysql_fetch_assoc($result))
{
$slug_old = strtolower($row['ItemTitle']);
$slug_old = preg_replace("/[^a-z0-9_\s-]/", "", $slug_old);
$slug_old = preg_replace("/[\s-]+/", " ", $slug_old);
$slug_old = preg_replace("/[\s_]/", "-", $slug_old);

echo $slug_old . '<br>';

$upd_query = "UPDATE feedItems SET slug = '" . $slug_old . "' WHERE Id = '" . $row['Id'] . "'";
$upd_result = mysql_query($upd_query);
if(!$upd_result)
{
echo 'Update error';
}
}
}
else
{
echo 'Select error';
}
echo "Done!";
mysql_close();
?>
Wow! In 1 woord: Je bent GEWELDIG!
Werkt als een zonnetje :)

Super bedankt!
Gr. Mike
Slug
Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

Slug is een Angelsaksische eenheid voor massa. Het eenheidssymbool is eveneens slug.

1 slug := 1 lbf·s²/ft ? 14,5939 kg.

Slug is geen SI-eenheid en gebruik ervan is niet aan te raden.
Slug tja, soms heb je zin in iets anders :)
Mike de Roy op 13/12/2010 18:49:57

Slug tja, soms heb je zin in iets anders :)


Zin in? Mmmmmm ....

Results for 'slug'
English Dutch
slug slak, naaktslak
Mike de Roy op 13/12/2010 18:45:59

Wow! In 1 woord: Je bent GEWELDIG!


Nu we toch off-topic zitten, dat zijn er drie ;)
- SanThe - op 13/12/2010 18:51:43

[quote="Mike de Roy op 13/12/2010 18:49:57"]
Slug tja, soms heb je zin in iets anders :)


Zin in? Mmmmmm ....

Results for 'slug'
English Dutch
slug slak, naaktslak

[/quote]

Hahaha +1

Reageren