---
title: "behöver hjälp! separera textrad för att jämföra"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/137506-behöver-hjälp-separera-textrad-för-att-jämföra"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "matissen"
published: "2005-11-13T10:35:33.000Z"
updated: "2005-11-13T12:45:53.000Z"
replies: 9
views: 360
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/137506-behöver-hjälp-separera-textrad-för-att-jämföra"
---

# behöver hjälp! separera textrad för att jämföra

## #1 — matissen, 2005-11-13T10:35Z

Jag har ett delikat problem att lösa. Jag har en sida med massor av bilder. När bilderna lades in lästes dimensionerna in i en tabell (photoPizelsize) i formen t.ex. 400x600, sparad som vanlig textrad (varchar).

Nu har jag lagd till så att den dessutom skriver in i en ny tabell (Format) om bilden är liggande, stående eller kvadratisk när en bild laddas upp. Problemet är att de tusentals bilder som ligger på sidan har tabellen "format" tom.

Jag skulle alltså behöva göra ett litet script som kollar igenom tabellen "photoPixelsize" på alla bilder, och särar på informationen 400x600 eller 500x500 så att den kan jämföra den första siffran med den andra, och om 400 \< 600 så fyller den i fältet "format" att bilden är "stående" osv.

Hur gör jag detta? Det är enormt viktigt att inget går fel! Kommer iofs spara databasen innan jag prövar så jag kan återställa allt.

Just nu är tabellen format tom på alla bilder, vilket borde göra det lite lättare.

För att sammafatta:
Loopa igenom alla bilder, läsa av och separera textraden photopixelsize (ex 400x600 till 400 600) för att kunna jämföra siffran innan x med siffran efter.
Beroende på resultatet skriver den in in tabellen format om bilden är stående, liggande eller kvadratisk.
Klart.

Permalänk: https://www.webforum.nu/p/137506

## #2 — Melea, 2005-11-13T10:46Z

Uhm, då ska vi se. :)

```php
$sql = mysql_query("
SELECT * 
FROM picture
") or die(mysql_error());

while($row = mysql_fetch_assoc($sql)) {

    $img_size = explode('x', $row['photoPixelsize']);
    $sql_update = "UPDATE picture SET format = ";
    
    if($img_size[0] > $img_size[1]) {
        $sql_update .= "_liggande_";
    } elseif($img_size[0] < $img_size[1]) {
        $sql_update .= "_stående_";
    } else {
        $sql_update .= "_kvadratisk_";
    }

    $sql_update .= " WHERE id = $row[id]";
    mysql_query($sql_update) or die(mysql_error());

}
```

Dock helt otestat. 
Du får ändra värdena inom $sql_update .= "" till vad du vill spara "format" som.

**/r** Dock kommer det ta ett tag att köra frågan, om det nu är tusentals poster. :)

Permalänk: https://www.webforum.nu/p/1706385

## #3 — matissen, 2005-11-13T11:43Z

har kört det på testserver med mindre bilder för att pröva =)

verkar dock inte funka...

Permalänk: https://www.webforum.nu/p/1706396

## #4 — Melea, 2005-11-13T11:45Z

Fick du något felmeddelandet? Vad hände? Var sidan blank? Har du ändrat alla kolumnen så de passar just *din* tabell?

Permalänk: https://www.webforum.nu/p/1706398

## #5 — matissen, 2005-11-13T12:03Z

Japp, har ändrat så det passar men får detta meddelande:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Nu ser den ut exakt så här:

```php
$sql = mysql_query("
SELECT *
FROM photos
") or die(mysql_error());

while($row = mysql_fetch_assoc($sql)) {

    $img_size = explode('x', $row['photoPixelSize']);
    $sql_update = "UPDATE photos SET photoFormat = ";
    
    if($img_size[0] > $img_size[1]) {
        $sql_update .= "_liggande_";
    } elseif($img_size[0] < $img_size[1]) {
        $sql_update .= "_stående_";
    } else {
        $sql_update .= "_kvadratisk_";
    }

    $sql_update .= " WHERE photoID = $row[id]";
    mysql_query($sql_update) or die(mysql_error());

} 
?>
```

Permalänk: https://www.webforum.nu/p/1706405

## #6 — Melea, 2005-11-13T12:07Z

Ändra till

```php
 $sql = mysql_query("
SELECT *
FROM photos
") or die(mysql_error('SQL: '.$sql));

while($row = mysql_fetch_assoc($sql)) {

    $img_size = explode('x', $row['photoPixelSize']);
    $sql_update = "UPDATE photos SET photoFormat = ";
    
    if($img_size[0] > $img_size[1]) {
        $sql_update .= "_liggande_";
    } elseif($img_size[0] < $img_size[1]) {
        $sql_update .= "_stående_";
    } else {
        $sql_update .= "_kvadratisk_";
    }

    $sql_update .= " WHERE photoID = $row[id]";
    mysql_query($sql_update) or die(mysql_error('SQL: '.$sql_update));

}
```

Så får vi se vad SQL-frågan skriver ut.

Permalänk: https://www.webforum.nu/p/1706408

## #7 — matissen, 2005-11-13T12:18Z

Nu får jag inget felmeddelande men inget uppdateras.

Kan det ha något att göra med:
" WHERE photoID = $row\[id\]"

kolumnen i databasen heter "photoID" ska det då stå:
" WHERE photoID = $row\['photoID'\]"?

har iofs provat det, men funkar ändå inte.

Permalänk: https://www.webforum.nu/p/1706414

## #8 — Melea, 2005-11-13T12:20Z

Det ska isåfall vara utan '-fnuttarna.

```
WHERE photoID = $row[photoID]
```

Alternativ

```
WHERE photoID = '$row[photoID]'
```

Om photoID inte är ett tal.

Permalänk: https://www.webforum.nu/p/1706416

## #9 — matissen, 2005-11-13T12:43Z

lösning!

Detta funkar:

```php
$sql = mysql_query("
SELECT *
FROM photos
") or die(mysql_error('SQL: '.$sql));

while($row = mysql_fetch_assoc($sql)) {

    $img_size = explode('x', $row['photoPixelSize']);
    
    if($img_size[0] > $img_size[1]) {
        $format = "liggande";
    } elseif($img_size[0] < $img_size[1]) {
        $format = "stående";
    } elseif($img_size[0] == $img_size[1]) {
        $format = "kvadratisk";
    }

    $sql_update = "UPDATE photos SET format = '$format' WHERE photoID = $row[photoID]";
    mysql_query($sql_update) or die(mysql_error('SQL: '.$sql_update));

}
```

 

Tack för hjälpen!   :)

Permalänk: https://www.webforum.nu/p/1706422

## #10 — Melea, 2005-11-13T12:45Z

Gott! :)

Glöm inte att acceptera tråden som löst

Permalänk: https://www.webforum.nu/p/1706424

---

Tråden på webben: https://www.webforum.nu/amne/php/137506-behöver-hjälp-separera-textrad-för-att-jämföra
