Vinnaren i pepparkakshustävlingen!
2010-02-16, 18:19
  #1
Medlem
Jag håller på med en sida där jag ska radda upp "previews" på mina tutorials. Men jag har stött på ett välldigt konstigt fel. Den hämtar inte all information som jag söker efter, den hoppar över en post :S

Kod:
SELECT FROM tutorials WHERE Categori 'Photoshop' AND Rewind 'nope' ORDER BY ID DESC 

Den koden hämtar ut 4 tutorials ur min databas, men jag har 5 st där som har Categori = Photoshop
Den här koden däremot, visar samma tutorials förutom att den byter ut en mot den 5:e som inte syntes med den första koden:

Kod:
SELECT FROM tutorials WHERE Categori 'Photoshop' AND Rewind 'nope' 

Vad kan orsaka detta?

---------------------------------------

Kan även passa på att fråga varför inte det här fungerar:

URL: http://www.dittbud.se/adesignersday/...hp?c=Photoshop
Kod:
$cate $_POST['c'];

$sql "SELECT * FROM tutorials WHERE Categori = '$cate' AND Rewind = 'nope' ORDER BY ID DESC"
Citera
2010-02-16, 18:50
  #2
Moderator
Protons avatar
Vad händer om du sätter LIMIT 10 Efter den första respekltive den andra SQL-en? Rent spontant kännns det som att det här snarare handlar om att din editor inte visar mer än 4 åt gången eller nåt sånt, eftersom din ORDER BY gjorde att den ena men inte den andra funkade?

Svaret i din andra fråga finns troligen m du skriver ut din SQL till skärmen. Finns alla variabler ifyllda där, och innehåller dessa rätt saker?

Vad är det förresten som inte funkar? Vad ska man se och vad är det som kommer upp egentligen?
Citera
2010-02-16, 18:59
  #3
Medlem
Jag löste den andra frågat, hade bara hjärnan på fel ställe. det skulle ju vara GET och inte POST

Hur som helst så får jag forfarande inte fund med det första problemet. Testa att göra som du sa men det hjälpte inte. Jag använder IE för att kolla hela tiden, inte någon editor, och man tycker ju att det borde fungera där

Edit, körde sql koden direkt i phpmyadmin och där fungerade det det klockrent. Jag har haft detta problemet på en annan sida, för inte så längesen. Kunde inte lösa det då heller

Antar att även ni bara ser 4 poster här:
http://www.dittbud.se/adesignersday/...gory=Photoshop
__________________
Senast redigerad av abiz2 2010-02-16 kl. 19:03.
Citera
2010-02-16, 19:08
  #4
Moderator
Protons avatar
Citat:
Ursprungligen postat av abiz2
Jag löste den andra frågat, hade bara hjärnan på fel ställe. det skulle ju vara GET och inte POST

Hur som helst så får jag forfarande inte fund med det första problemet. Testa att göra som du sa men det hjälpte inte. Jag använder IE för att kolla hela tiden, inte någon editor, och man tycker ju att det borde fungera där

Edit, körde sql koden direkt i phpmyadmin och där fungerade det det klockrent. Jag har haft detta problemet på en annan sida, för inte så längesen. Kunde inte lösa det då heller

Antar att även ni bara ser 4 poster här:
http://www.dittbud.se/adesignersday/...gory=Photoshop
Om du får ut rätt saker när du kör din SQL direkt mot databasen tyder det ju på att koden där presentationen av resultatet sker är buggig. Detta har alltså troligen lite med din SQL att göra och mer med hur du har kodat resten av applikationen.
Citera
2010-02-16, 19:14
  #5
Medlem
Så här ser resten av koden ut:

Kod:
$query mysql_query($sql) or die(mysql_error());
$row_sql mysql_fetch_assoc($query);
$total mysql_num_rows($query);

while (
$row_sql mysql_fetch_assoc($query)) 
{

echo 
" **Tabeller och annat roligt** ";
    


Jag är inte super bra på den där biten, syns något fel? Det kan väl omöjligt handla om att det är något fel på tabellerna i echon?
Citera
2010-02-16, 19:23
  #6
Moderator
Protons avatar
Citat:
Ursprungligen postat av abiz2
Så här ser resten av koden ut:

Kod:
<?php
$query 
mysql_query($sql) or die(mysql_error());
$row_sql mysql_fetch_assoc($query);
$total mysql_num_rows($query);

while (
$row_sql mysql_fetch_assoc($query)) 
{

echo 
" **Tabeller och annat roligt** ";
    
}

Jag är inte super bra på den där biten, syns något fel? Det kan väl omöjligt handla om att det är något fel på tabellerna i echon?
Eftersom du har allt i en echo-sats så antar jag att du har blivit tvungen att escapea en massa enkel-och dubbelfnuttar lite överallt i dina taggar för att få det att funka ordentligt, det är enkelt då att fucka till designen ska du veta.

Ett bättre alternativ isf är ju att du går ur php-läget innan loopen och sedan gör in i det när det är klart:

Kod:
$query = mysql_query($sql) or die(mysql_error());
$row_sql = mysql_fetch_assoc($query);
$total = mysql_num_rows($query);

while ($row_sql = mysql_fetch_assoc($query)) 
{?>
<tr><td>tabellcell</td></tr>
<?php
}
?>
För övrigt innehåller koden för lite information för att man ska kunna utläsa nåt fel från den. Dessutom har det som sagt inte så mkt med databasen i sej att göra längre.
Citera
2010-02-16, 19:28
  #7
Medlem
jag testade att ta bort allt i echon förutom ".$row_sql['Loga']." men det blev ingen skillnad :S

Jag får försöka lösa detta, ska ta och testa det du sa om att sätta allt i echon utanför php taggarna.

Men tack så mycket för hjälpen
Citera
2010-02-16, 20:53
  #8
Medlem
desmoduss avatar
Jag kan inte ett spår php, men:
Kod:
mysql_fetch_assoc($query); 
Är det nån slags movenext reader? För den anropas först en gång och resultatet används till synes inte, därefter anropas den i loopen tills den (antar jag) inte returnerar nåt längre?

Om en post faller bort, så kunde ju det vara en anledning.

Om jag är helt ute och cyklar så bara glöm vad jag sa.
Citera
2010-02-17, 09:16
  #9
Medlem
Mys-Hitlers avatar
Citat:
Ursprungligen postat av desmodus
Jag kan inte ett spår php, men:
Kod:
mysql_fetch_assoc($query); 
Är det nån slags movenext reader? För den anropas först en gång och resultatet används till synes inte, därefter anropas den i loopen tills den (antar jag) inte returnerar nåt längre?

Om en post faller bort, så kunde ju det vara en anledning.

Om jag är helt ute och cyklar så bara glöm vad jag sa.
Du är inte alls ute och cyklar.
Citera
2010-02-17, 10:50
  #10
Medlem
Jag var också inne på att det var någon fel i min php kod så jag testade så här istället:

Kod:
$query "SELECT * FROM tutorials WHERE Categori LIKE '%$cate%' AND Rewind = 'nope' ORDER BY Date DESC";
$result mysql_query($query) or die('Error, query failed 1');
while(
$row_sql mysql_fetch_array($result)){ 

Och det fungerade klockrent
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback