Data in MySQL updaten middels php met extra functies, probleem..

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mike de Roy

Mike de Roy

13/12/2010 18:22:46
Quote Anchor link
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?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();
?>
 
PHP hulp

PHP hulp

12/01/2025 06:50:30
 
- SanThe -

- SanThe -

13/12/2010 18:29:39
Quote Anchor link
Jouw UPDATE doet als het goed is alle records.
Wil je dat niet, geef dan een WHERE mee.
 
Mike de Roy

Mike de Roy

13/12/2010 18:33:34
Quote Anchor link
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
 
- SanThe -

- SanThe -

13/12/2010 18:41:30
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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();
?>
 
Mike de Roy

Mike de Roy

13/12/2010 18:45:59
Quote Anchor link
Wow! In 1 woord: Je bent GEWELDIG!
Werkt als een zonnetje :)

Super bedankt!
Gr. Mike
 
- SanThe -

- SanThe -

13/12/2010 18:46:14
Quote Anchor link
Quote:
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.
 
Mike de Roy

Mike de Roy

13/12/2010 18:49:57
Quote Anchor link
Slug tja, soms heb je zin in iets anders :)
 
- SanThe -

- SanThe -

13/12/2010 18:51:43
Quote Anchor link
Mike de Roy op 13/12/2010 18:49:57:
Slug tja, soms heb je zin in iets anders :)


Zin in? Mmmmmm ....

Quote:
Results for 'slug'
English Dutch
slug slak, naaktslak
Gewijzigd op 13/12/2010 18:52:02 door - SanThe -
 
Jens V

Jens V

13/12/2010 19:27:41
Quote Anchor link
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 ;)
 
Bram Boos

Bram Boos

13/12/2010 19:29:34
Quote Anchor link
- SanThe - op 13/12/2010 18:51:43:
Mike de Roy op 13/12/2010 18:49:57:
Slug tja, soms heb je zin in iets anders :)


Zin in? Mmmmmm ....

Quote:
Results for 'slug'
English Dutch
slug slak, naaktslak


Hahaha +1
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.