webForumDet fria alternativet

Hämta data från mysql efter url?

9 svar · 1 178 visningar · startad av Akerlundh

AkerlundhMedlem sedan maj 20031 682 inlägg
#1

Skriver jag sidan.php?id=1 så vill ja skriva ut information som finns just på det id.

något i stil med detta vill jag ska hämtas från databasen. Men vet inte hur jag ska skriva koden så han ska hämta id nummer från url.

SELECT * FROM lead WHERE id = ".$id

AkerlundhMedlem sedan maj 20031 682 inlägg
#2

Vet inte om jag är ute och cyklar nu men kan det vara denna kod jag letar efter? Om det är det så funkar det inte ändå :P


<?php
$dbhost = '';
$dbuser = '';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}

$id = (int) $_GET['id']; 
$sql = "SELECT * FROM lead WHERE id = '$id'";  

mysql_select_db('');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
    echo " {$row['foretag']}  ".
         " {$row['ort']}  ".
         " {$row['mobilnr']} ".
         " {$row['kontaktperson']} ".
         " {$row['ovriginfo']} ".
         " {$row['utfall']} ";
} 
mysql_close($conn);
?>
Nate.AMedlem sedan mars 2006296 inlägg
#3

Får du några felmeddelanden eller blir det bara en blank sida?

Om du vill visa alla felmeddelanden kan du lägga till det här längst upp efter "<?php"

error_reporting(E_ALL);
ini_set("display_errors", "1");

...och det kan vara vettigt att kontrollera så id är satt

if(isset($_GET['id']) && is_numeric($_GET['id'])){
    $id = (int)$_GET['id'];  
    $sql = "SELECT * FROM lead WHERE id = " . $id ." LIMIT 1"; 
} else {
    // Vad som händer om inte id finns
    die("Inget ID");
}
AkerlundhMedlem sedan maj 20031 682 inlägg
#4

Får bara en blank sida och inga felmeddelande trots att jag satt in koden du skrev ovan.

AkerlundhMedlem sedan maj 20031 682 inlägg
#5

Jag är så korkad! Jag har ju skrivet ett id som inte finns så det är ju inte konstigt att det inte kommer fram något resultat.

AkerlundhMedlem sedan maj 20031 682 inlägg
#6

Kan ju passa på att fråga om du vet vad detta problemet kan bero på ?

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /storage/content/51/191351/crm.mivamedia.se/public_html/update_lead.php on line 30

if(isset($_GET['id']) && is_numeric($_GET['id'])){ 
$id = (int)$_GET['id']; 
$sql=" UPDATE lead (orgnr, foretag, kontaktperson, ftgnr, mobilnr, epost, besokadress, ovriginfo, utfall, datum, ort, agare, senastupdaterad)
VALUES ('$orgnr', '$foretag', '$kontaktperson', '$ftgnr', '$mobil', '$epost', '$besokadress', '$ovriginfo', '$utfall', '$datum', '$ort', '$agare', NOW())
WHERE id=" . $id ." LIMIT 1"";
} else { 
    // Vad som händer om inte id finns 
    die("Inget ID"); 
}  <!--- linje 30
metalboyMedlem sedan jan. 2005953 inlägg
#7

Du har ett citationstecken (") för mycket efter LIMIT 1 några rader ovanför.

AkerlundhMedlem sedan maj 20031 682 inlägg
#8

metalboy skrev:

Du har ett citationstecken (") för mycket efter LIMIT 1 några rader ovanför.

När jag tog bort det fick jag.

Error: 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 '(orgnr, foretag, kontaktperson, ftgnr, mobilnr, epost, besokadress, ovriginfo, u' at line 1
metalboyMedlem sedan jan. 2005953 inlägg
#9

En UPDATE-sats ska skrivas som

UPDATE [LOW_PRIORITY] [IGNORE] table_reference
    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

(http://dev.mysql.com/doc/refman/5.0/en/update.html)

Skriv alltså om det så här:

$sql="UPDATE lead SET orgnr='$orgnr', foretag='$foretag', kontaktperson='$kontaktperson', ftgnr='$ftgnr', mobilnr='$mobil', epost='$epost', besokadress='$besoksadress', ovriginfo='$ovriginfo', utfall='$utfall', datum='$datum', ort='$ort', agare='$agare', senastupdaterad=NOW()
WHERE id=" . $id ." LIMIT 1";

Jag vill också passa på att påpeka att PHP:s mysql-funktioner är deprecated. Det betyder att de kommer att försvinna i någon av de kommande versionerna. Titta gärna på PDO eller Mysqli istället.

AkerlundhMedlem sedan maj 20031 682 inlägg
#10

metalboy skrev:

En UPDATE-sats ska skrivas som

UPDATE [LOW_PRIORITY] [IGNORE] table_reference
    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

(http://dev.mysql.com/doc/refman/5.0/en/update.html)

Skriv alltså om det så här:

$sql="UPDATE lead SET orgnr='$orgnr', foretag='$foretag', kontaktperson='$kontaktperson', ftgnr='$ftgnr', mobilnr='$mobil', epost='$epost', besokadress='$besoksadress', ovriginfo='$ovriginfo', utfall='$utfall', datum='$datum', ort='$ort', agare='$agare', senastupdaterad=NOW()
WHERE id=" . $id ." LIMIT 1";

Jag vill också passa på att påpeka att PHP:s mysql-funktioner är deprecated. Det betyder att de kommer att försvinna i någon av de kommande versionerna. Titta gärna på PDO eller Mysqli istället.

Nu funkade det. Tusen tack.

139 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)