Avatar billede RJFreelance Praktikant
08. maj 2009 - 22:13 Der er 8 kommentarer og
1 løsning

Array + update af mysql, fejl?

Hejsa

Jeg knokler med en smule php der bare ikke vil virke..

Jeg har følgende kode:

$listen  = $_POST['imageIdList'];
$dele = explode(",", $listen);
$siden = $_POST['siden'];
echo $siden;

$sql ="SELECT * FROM page_pic WHERE side_id = '".$siden."' order by placering_id";
    $query = mysql_query($sql);
        $y = 0;
        echo $y;
    while($row = mysql_fetch_array($query)){
       
        mysql_query("UPDATE page_pic set placering_id  = '$dele[$y]' WHERE id = '$row[id]'") or die(mysql_error());
        $y++;
       
        echo $y;
        echo $dele[$y];

        echo "<br>";
        }

Og når jeg kører det får jeg dette svar:

011
22
33
44
55
66
77
88
99
1011
11

Mit array indeholder følgende tal:

10,1,2,3,4,5,6,7,8,9,11

Hvor går det galt??

På forhånd tak..
Avatar billede RJFreelance Praktikant
08. maj 2009 - 22:15 #1
Se bort fra følgende 2 linier:


$siden = $_POST['siden'];
echo $siden;

Disse er ikke med i mit "resultat"
Avatar billede RJFreelance Praktikant
08. maj 2009 - 22:20 #2
Nå fandt nogle fejl.. Mht tallene skulle det passe..

Den får bare ikke opdateret mysql'en.. Hvad kan der være galt?
Avatar billede erikjacobsen Ekspert
08. maj 2009 - 22:26 #3
prøv
$bum=$dele[$y];
        mysql_query("UPDATE page_pic set placering_id  = '$bum' WHERE id = '$row[id]'") or die(mysql_error());
Avatar billede RJFreelance Praktikant
08. maj 2009 - 22:27 #4
Eller det vil sige, den opdaterer ikke mysql'en rigtigt..
Avatar billede RJFreelance Praktikant
08. maj 2009 - 22:28 #5
Erik, det er ikke problemet..

Problemet er at tallene ikke smides ind på de rigtige pladser.. Og det forstår jeg ikke..
Avatar billede erikjacobsen Ekspert
08. maj 2009 - 22:35 #6
Hvad er så problemet?
Avatar billede dkfire Nybegynder
08. maj 2009 - 23:57 #7
Du laver en klar fejl i din kode.
Du udskriver din y variabel og et element af dit array forkert.

  $y = 0; // Sætter y til 0
        echo $y; // Udskriver y
    while($row = mysql_fetch_array($query)){
     
        mysql_query("UPDATE page_pic set placering_id  = '$dele[$y]' WHERE id = '$row[id]'") or die(mysql_error());
        $y++; // Tæller y en op
     
        echo $y; // Udskriver den nye y
        echo $dele[$y]; // Bruger den nye y til at finde et element i dit array, men det er ikke det samme element som det du lagde i din mysql tabel.

        echo "<br>";
        }

Prøv i stedet:

$y = 0;
while($row = mysql_fetch_array($query))
{
    echo $y;
    echo $dele[$y];
    $sql = "UPDATE page_pic SET placering_id=".$dele[$y]." WHERE id=".$row['id'];
    echo "Sql : ".$sql."<br>\n\r";
    mysql_query($sql) or die(mysql_error());
    $y++;
     
    echo "<br>";
}
Avatar billede RJFreelance Praktikant
03. august 2009 - 13:51 #8
Smid et svar
Avatar billede RJFreelance Praktikant
07. oktober 2010 - 12:13 #9
Lukket pga. mangelende svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester