Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Upprepad SELECT

Postades av 2009-03-28 17:19:06 - Sören Monvall, i forum php, Tråden har 4 Kommentarer och lästs av 1275 personer

Jag vill göra fler SELECT där del av resultatet i den första skall vara argumentet i nästa osv Jag kommer bara ett steg. Jag lagrar undan den del i första SELECTen som skall användas inästa men inget händer!!!?? Såhär ser koden ut

<?php
$db="kall300db";
$link = mysql_connect("localhost","root","");
if (! $link)
die("Couldn't connect to MySQL");
mysql_select_db($db , $link)
or die("Couldn't open $db: ".mysql_error());

// $search = 'Familjenr' skall kunna hämtas från indataformulär sedan;28

$result = mysql_query("SELECT * FROM kall WHERE Familjenr = '1883' AND Fställning = '0'");

// !! Skriv ut info för Fadern !! K1=Familjenr,K2=Fställning,K3=Helnamn,K4=Ufamiljenr,K5=Ufställning
while($row = mysql_fetch_array($result))

  {
  echo $row['Familjenr'] . " " . $row['Fställning'] . " " . $row['Helnamn'] . " " . $row['Ufamiljenr'] .
" " . $row['Ufställning'];
  echo "<br />";  
  }


// !! Spara Faderns  K4 värde (Ufamiljenr)
$next=$row['Ufamiljenr'];
// !! Sen använder jag Faderns K1 Familjenr (1883) och skriver ut resten av hans familj om
// det finns fler !! 44
 
$result = mysql_query("SELECT '$row[Familjenr]' FROM 'kall' WHERE Fställning NE '0' ");


while($row = mysql_fetch_array($result))
  {
  echo $row['Familjenr'] . " " . $row['Fställning'] . " " . $row['Helnamn'] . " " . $row['Ufamiljenr'] .
" " . $row['Ufställning'];
  echo "<br />";

  }
// !! Sen kollar vi om det finns fler familjer relaterade till Fadern och skriver
// ut dessa!!
$result = mysql_query("SELECT $next FROM kall WHERE Familjenr = '$next AND Fställning = '0'");

while($row = mysql_fetch_array($result))
  {
  echo $row['Familjenr'] . " " . $row['Fställning'] . " " . $row['Helnamn'] . " " . $row['Ufamiljenr'] .
" " . $row['Ufställning'];
  echo "<br />";

  }
?>
//Detta skall fortsätta så länge som Fadern har ett Ufamiljenr
</body>
</html>

Vari ligger mitt fel?


Svara

Sv: Upprepad SELECT

Postades av 2009-03-28 20:06:21 - Per Persson

Du kör

$result = mysql_query("SELECT * FROM kall WHERE Familjenr = '1883' AND Fställning = '0'");

// !! Skriv ut info för Fadern !! K1=Familjenr,K2=Fställning,K3=Helnamn,K4=Ufamiljenr,K5=Ufställning
while($row = mysql_fetch_array($result))

  {
  echo $row['Familjenr'] . " " . $row['Fställning'] . " " . $row['Helnamn'] . " " . $row['Ufamiljenr'] .
" " . $row['Ufställning'];
  echo "<br />";  
  }

Men efter denna kod har whileslingan avslutats och då har $row värdet false.

Sedan kör du
// !! Spara Faderns  K4 värde (Ufamiljenr)
$next=$row['Ufamiljenr'];

Eftersom $row är false funkar inte raden ordentligt utan $next får värdet null.

// !! Sen använder jag Faderns K1 Familjenr (1883) och skriver ut resten av hans familj om
// det finns fler !! 44
 
$result = mysql_query("SELECT '$row[Familjenr]' FROM 'kall' WHERE Fställning NE '0' ");

Och här får SQL-satsen utseendet
SELECT '' FROM 'kall' WHERE Fställning NE '0'
eller möjligen
SELECT '[Familjenr]' FROM 'kall' WHERE Fställning NE '0'


Svara

Sv:Upprepad SELECT

Postades av 2009-03-29 15:54:41 - Sören Monvall

Nu har jag gjort ändring så att jag vet att $row innehåller förväntat värde liksom $next men jag får ändå inte ut resten av angivet Familjenr (1883) och jag får inte ut resten av familj 1883 och ej heller nästa familj utifrpn värdet i $next som jag vet är rätt. Så här ser koden ut just nu med inlagd utskrift av värden.
<code>

<?php
$db="kall300db";
$link = mysql_connect("localhost","root","");
if (! $link)
die("Couldn't connect to MySQL");
mysql_select_db($db , $link)
or die("Couldn't open $db: ".mysql_error());

// $search = 'Familjenr' skall kunna hämtas från indataformulär;28

$result = mysql_query("SELECT * FROM kall WHERE Familjenr = '1883' AND Fställning = '0'");

// !! Skriv ut info för Fadern !! K1=Familjenr,K2=Fställning,K3=Helnamn,K4=Ufamiljenr,K5=Ufställning

while($row = mysql_fetch_array($result))

{
echo $row['Familjenr'] . " " . $row['Fställning'] . " " . $row['Helnamn'] . " " . $row['Ufamiljenr'] .
" " . $row['Ufställning'];
echo "<br />";


$next=$row['Ufamiljenr'];
echo '<pre>'; print_r($next); echo '</pre>';
echo '<pre>'; print_r($row); echo '</pre>';

// !! Spara Faderns K4 värde (Ufamiljenr)


// !! Sen använder du Faderns K1 (1883) och skriver ut resten av hans familj om
// det finns fler !! 44

$result = mysql_query("SELECT '$row[Familjenr]' FROM kall");


while($row = mysql_fetch_array($result))
{

echo $row['Familjenr'] . " " . $row['Fställning'] . " " . $row['Helnamn'] . " " . $row['Ufamiljenr'] .
" " . $row['Ufställning'];
echo "<br />";
}
}
// !! Sen kollar vi om det finns fler familjer relaterade till Fadern och skriver
// ut dessa!!
$result = mysql_query("SELECT $next FROM kall WHERE Familjenr = '$next' AND Fställning = '0'");
while($row = mysql_fetch_array($result))
{
echo $row['Familjenr'] . " " . $row['Fställning'] . " " . $row['Helnamn'] . " " . $row['Ufamiljenr'] .
" " . $row['Ufställning'];
echo "<br />";

}
?>
//Detta skall fortsätta så länge som Fadernhar ett Ufamiljenr
</body>
</html>
</code>
Ser du nu var felet mitt ligger?


Svara

Sv: Upprepad SELECT

Postades av 2009-03-29 19:20:37 - Per Persson

Du har aldrig funderat över vad som händer om samma variabel används både i en yttre och inre slinga?

Här är ett utdrag ur din kod:

$result = mysql_query(...);
while ($row = mysql_fetch_assoc($result))
{
    ...
    $result = mysql_query(...);
    while ($row = mysql_fetch_assoc($result))
    {
        ...
    }
    ...
}


Svara

Sv:Upprepad SELECT

Postades av 2009-03-31 01:50:10 - Sören Monvall

Nu ska du inte vara sån mot en gammal man!!
Detta handlar om en databas med en mängd människor bland vilka man ska kunna leta sig tillbaka i så många generationer som det finns uppgifter om.
Kör jag koden på detta sätt får jag två generationer och jag skulle kunna skriva ytterligare SELECT-satser tills jag är säker på att jag täcker in den längsta tänkbara kedjan. Jag tycker det är för simpelt men tyvärr klarar inte jag att hitta den loop eller vad det ska kallas som ska klara detta. Någon som klarar att visa hur det skulle se ut.

Efter varje delsteg har jag lagt in så jag skall kunna se vilka värden som finns i variablerna. Dom ligger kvar så länge.

<code>
<?php
$db="kall300db";
$link = mysql_connect("localhost","root","");
if (! $link)
die("Couldn't connect to MySQL");
mysql_select_db($db , $link)
or die("Couldn't open $db: ".mysql_error());

// $search = 'Familjenr' skall kunna hämtas från indataformulär när jag vet att allt fungerar


$result = mysql_query("SELECT * FROM kall WHERE Familjenr = '1883' AND Fställning = '0'");

// !! Skriv ut info för Fadern !! K1=Familjenr,K2=Fställning,K3=Helnamn,K4=Ufamiljenr,K5=Ufställning

while($row = mysql_fetch_array($result))

{

echo $row['Familjenr'] . " " . $row['Fställning'] . " " . $row['Helnamn'] . " " . $row['Ufamiljenr'] .
" " . $row['Ufställning'];
echo "<br />";
// !! Spara Faderns K4 värde (Ufamiljenr) ( Fam 1 Far)
// !! Spara Faderns K1 värde (Familjenr)
$next=$row['Ufamiljenr'];
$next1=$row['Familjenr'];

echo '<pre>'; print_r($next); echo '</pre>';
echo '<pre>'; print_r($next1); echo '</pre>';
}



// !! Sen använder du Faderns K1 (1883) och skriver ut resten av hans familj om (Fam 1 Mor och barn)
// det finns fler !!

$result = mysql_query("SELECT * FROM kall WHERE Familjenr = '$next1' AND Fställning <> '0'");


while($row = mysql_fetch_array($result))
{

echo $row['Familjenr'] . " " . $row['Fställning'] . " " . $row['Helnamn'] . " " . $row['Ufamiljenr'] .
" " . $row['Ufställning'];
echo "<br />";
echo '<pre>'; print_r($next1); echo '</pre>';
echo '<pre>'; print_r($next); echo '</pre>';

}

// !! Sen kollar vi om det finns fler familjer relaterade till Fadern och skriver (Fam 2 Far)
// ut dessa!!
$result = mysql_query("SELECT * FROM kall WHERE Familjenr = '$next' AND Fställning = '0'");
while($row = mysql_fetch_array($result))
{
echo $row['Familjenr'] . " " . $row['Fställning'] . " " . $row['Helnamn'] . " " . $row['Ufamiljenr'] .
" " . $row['Ufställning'];
echo "<br />";
$next=$row['Ufamiljenr'];
$next1=$row['Familjenr'];

echo '<pre>'; print_r($next); echo '</pre>';
echo '<pre>'; print_r($next1); echo '</pre>';
}

// Sen använder du Faderns K1 ($next1) och skriver ut resten av hans familj om (Fam 2 Mor och barn)
// det finns fler !!
$result = mysql_query("SELECT * FROM kall WHERE Familjenr = '$next1' AND Fställning <> '0'");


while($row = mysql_fetch_array($result))
{

echo $row['Familjenr'] . " " . $row['Fställning'] . " " . $row['Helnamn'] . " " . $row['Ufamiljenr'] .
" " . $row['Ufställning'];
echo "<br />";
echo '<pre>'; print_r($next1); echo '</pre>';
echo '<pre>'; print_r($next); echo '</pre>';

}

?>
// Detta skall fortsätta så länge som Fadern har ett Ufamiljenr större än 0
</body>
</html>
</code>


Svara

Nyligen

  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 864
27 962
271 767
811
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies