Prolema Update dupa ordonare din Select
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
andras
- Mesaje: 430
Prolema Update dupa ordonare din Select
Salut,
Am o secventa PHP care nu functioneaza corect:
Cod: Selectaţi tot
<?php
$i=1;
while ($i<=$count1){ // $count1 este numarul de inregistrari si este variabil.
$nu1="SELECT min(pozitie1) as min, lista1_id, rang1 from lista1 where rang1=0";
$num1 = mysql_query($nu1) or die(mysql_error());
$randnum = mysql_fetch_assoc($num1) ;
$id=$randnum['lista1_id'];
$ianum="UPDATE lista1 set rang1=$i where lista1_id=$id";
$punenum =mysql_query($ianum) or die(mysql_error());
$i++;
}
?>
Inital toate inregistrarile au 0 la rang1. Functioneaza, dar incorect. In BD a rezultat cam asa:
Cod: Selectaţi tot
lista1_id rang1 pozitie1
81 1 6
82 2 2
82 3 4
84 4 5
85 5 3
desi trebuia ca rang1 sa fie atribuit succesiv in functie de min(pozitie1). SELECT-ul nu depinde de $i, dar UPDATE da. Poate aveti ceva idei, ca eu nu mai am.
MarPlo
Mesaje: 4343
Salut
Incearca sa aplici "ORDER BY pozitie1" la acel select.
Adica asa:
Cod: Selectaţi tot
SELECT min(pozitie1) as min, lista1_id, rang1 from lista1 where rang1=0 ORDER BY pozitie1
Sau daca nu e necesara valoarea "min", poate e bun acest Select:
Cod: Selectaţi tot
SELECT lista1_id, rang1 from lista1 where rang1=0 ORDER BY pozitie1 LIMIT 1
andras
Mesaje: 430
Am renuntat la MIN(pozitie1) care am observat ca nu merge cind ai mai multe conditii (scoate intotdeauna ordonat dupa ID-ul tabelei, adica lista1_id) si am pus
Cod: Selectaţi tot
SELECT lista1_id FROM lista1 WHERE rang1=0 ORDER BY pozitie1 LIMIT 1
, asa functioneaza corect. Totusi nu inteleg, teoretic ar fi trebuit sa functioneze din prima. Sa fie un bug al MYSQL? Greu de crezut. Oricum, multumesc.
Subiecte similare
-
mysql Update dupa nume
PHP - MySQL - XML
Primul mesaj
Salutari,
Incerc de ceva timp sa fac sa imi salveze informatiile jucatorului in baza de date, o data inserate vreau atunci cand gaseste din nou...
Ultimul mesaj
Cand se creaza tabelul in baza de date, coloana nickname trebuie sa fie de tip UNIQUE KEY .
Iar id-ul ar trebui sa fie o valoare care sa nu o mai...
-
Select dupa mai multe coloane in baza de date
PHP - MySQL - XML
Primul mesaj
Salut
am si eu o baza de date zona_geografica in care am rubricile
id |nume_tara |nume_oras |id_tara |id_oras | nume_zona | id_zona | data
1 |...
Ultimul mesaj
Multumesc mult pentru ajutor .
-
Problema ordonare in script paginare
PHP - MySQL - XML
Primul mesaj
Buna, am urmatorul script de paginare, insa nu reusesc sa-l setez sa-mi returneze inregistrariile din mysql ordonate descendent dupa ID.
Am...
Ultimul mesaj
Multumesc mult de ajutor, functioneza perfect!!!
-
Ajax fade mesaj si redirect dupa un timp
JavaScript - jQuery - Ajax
Primul mesaj
Am codul asta si vreau in loc de input type=button sa fie submit, dar sa imi dea fade la fel in 5 secunde de cand apare eroarea.
Daca schimb cu...
Ultimul mesaj
Am rezolvat,multumesc frumos de ajutor
-
După Lună, China se îndreaptă spre Marte
Stiri Deosebite
După ce a cucerit Luna, China se îndreaptă direct spre Marte.
<img style='width:99%' src='/forum/images/china_probe_rocket.webp' alt='China...
-
Setare valori din array in select tag
JavaScript - jQuery - Ajax
Primul mesaj
Salut am un array cu orele de functionare
$data = array (
'0400' => '04:00 AM',
'0430' => '04:30 AM',
'0500' => '05:00 AM',
'0530'...
Ultimul mesaj
Testeaza urmatorul cod.
Daca ceva mai trebuie schimbat, incearca si tu sa modifici dupa cum stii, in functie de ce vrei sa obtii.
Open:...